Developer Release Notes: BeOS Release 4.5, The Interface Kit
| index | headlines | <<previous | next>> |
|
The Interface Kit
Developer Release Notes BeOS Release 4.5 |
Bug Fixes
- A number of line drawing bugs
(poor bezier curves, poor horizontal lines,
disappearing lines) have been fixed.
- You can hide the cursor during a drag and drop, and
it will remain hidden
(during the drag).
- Dragger context menus are sticky.
- BFont::BoundingBoxes() no longer
deadlocks the App Server.
- Matrix menu behavior has been improved.
- Scrollbars now behave properly no matter how fast or how determinedly
you click them.
-
BStringView::GetPreferredSize() now reports reasonable values.
- BTextControl labels are repositioned correctly when the control is resized.
- BTextControls can be made non-navigable.
- Newlines are removed from text that's pasted into (or otherwise
adopted by) a BTextControl.
- In some situations, floating windows would block the focus of the
windows they were floating above.
This has been fixed.
- Floating windows are no longer minimizable.
- The B_WORKSPACE_ACTIVATED message (and the analogous WorkspaceActivated() hook function) is sent to B_ALL_WORKSPACES windows that are dragged between workspaces.
BBitmap
-
A new version of the BBitmap constructor copies an
existing BBitmap object.
BBitmap(BBitmap* source,
bool accepts_views = false,
bool contiguous = false);The new bitmap has the same size, depth, and contents as source.
BDragger and the Replicant System
- New InShelf()
function tells you if the (target) object is in its "native" environment, or
if it's been dragged and dropped on a BShelf.
bool InShelf() const; - New Target() function
returns the object's target view.
BView *Target() const; - New DragBitmap() hook function
is called when the replicant is dragged.
If you want to display something other than an outline, you subclass BDragger
and implement this function to return a BBitmap object.
virtual BBitmap *DragBitmap(BPoint *offset, drawing_mode *mode) const;You can supply an offset value to set the dragged image's hot spot (B_ORIGIN by default); mode sets the image's drawing mode (B_OP_COPY by default).
- The new "be:unique_replicant" boolean field, when added to a target BView's archive (and set to true), prevents the same replicant from being added more than once to a shelf. The test for uniqueness is predicated on the replicant's class name and the application signature of the library (or app) that provides the code for the replicated view.
Drag and Drop
- The "buttons" int32 field, which encodes the states of the mouse buttons, is automatically added to the BMessage that's passed to BView::DragMessage(). The drag target can look at this field in the dropped message to see which mouse button was used in the drag.
BFont
- The SetFamilyAndFace() and SetFamilyAndStyle() functions now return a status_t. The returned value tells you if the requested family/face or family/style combination maps to an actual font. If the function returns a value other than B_OK, the combination doesn't map and the font isn't changed (as before).
BPopUpMenu
- Asynchronous pop up menus can now destroy themselves after they're done --
just pass true to the new
SetAsyncAutoDestruct()
function.
The request is ignored if the object isn't set to run asynchronously
(as declared in the Go() function).
void SetAsyncAutoDestruct(bool state);
bool AsyncAutoDestruct(bool state) const;
BPrintJob
- New B_PRINTER_CHANGED message is broadcast by the Print Server to all running applications when the user changes the default printer. Applications that print should delete any print setup messages that they have acquired through Settings() when they receive this message. A "safety net" in BPrintJob should catch the printer change if the application doesn't.
BRegion
- The new clipping_rect
structure represents an integer-based rectangle.
In many cases, this integer rectangle is more efficient than the
floating-point version.
- Many of the BRegion functions now appear in versions that accept or return clipping_rect data.
BScreen
BScreen
-
A new version of
SetDesktopColor()
takes a workspace index as its
second argument, thus letting you specify the workspace
that you want the color applied to:
void SetDesktopColor(rgb_color rgb, uint32 index, bool stick=true); -
New DesktopColor()
returns the color of the desktop with the given index, when
the user has a Workspace with multiple desktops:
rgb_color DesktopColor(uint32 index);
BWindow
- BWindow responds to
the new B_WINDOW_MOVE_TO and
B_WINDOW_MOVE_BY messages.
See System Messages for more info.
- Floating windows are no longer minimizable.
- Bounds() and Frame() no longer query the App Server. The BRects they return are maintained by the BWindow object in an up-to-date form.
Mouse Warping
Declared in InterfaceDefs.h
-
The new set_mouse_mode()
function sets the mouse's focus-following and "warping" characteristics:
void set_mouse_mode(mode_mouse mode);The function takes a combination of the new mode_mouse modes:
Mode Meaning B_NORMAL_MOUSE Don't follow focus, and don't warp. B_FOCUS_FOLLOWS_MOUSE Follow focus, but don't warp. B_WARP_MOUSE Warp (slide) to a newly active window. B_INSTANT_WARP_MOUSE Instant warp (jump) to a newly active window. Currently, the warp modes automatically turn on focus-follows-mouse; this may change someday.
- To retrieve the current mouse mode, use the new
mouse_mode() function:
mode_mouse mouse_mode();
| The set_mouse_mode() and mouse_mode() functions obsolete the old set_focus_follows_mouse() and focus_follows_mouse() functions (the old functions are still supported). |
| Setting the mouse mode is normally left to the user (through the Mouse preference). |
| index | headlines | <<previous | next>> |
| BeOS Release 4.5 |
Copyright ©
1999 Be, Inc.
All rights reserved.