Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ Developer Release Notes: BeOS Release 4.5, The Interface Kit

Media Vault

Software Library

Restoration Projects

Artifacts Sought

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:

    ModeMeaning
    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.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026