A few constants identify messages as data containers. The system
currently uses the B_MIME_DATA
and
B_SIMPLE_DATA
constants to mark the
containers it constructs for drag-and-drop operations.
This message constant indicates that all the data in the message is
identified by MIME
type names. The type code of every data field is
B_MIME_TYPE
and the name of each field is the
MIME type string.
As an example, a
BTextView
object puts together a
B_MIME_DATA
message for
drag-and-drop operations. The message has the text itself in a field
named "text/plain"; the
text_run_array
structure that describes the
character formats of the text is in a field named
"application/x-vnd.Be-text_run_array".
This message is a package for a single data element. If there are multiple data fields in the message, they present the same data in various formats.
For example, when the user drags selected files and directories from a
Tracker window, the Tracker packages entry_ref references to them in a
B_SIMPLE_DATA
message. The references are
in a refs
array with a type
code of B_REF_TYPE
.
In other words, the message has the same structure as
a B_REFS_RECEIVED
message, but a different what constant.
Declared in: app/AppDefs.h
These messages are sent to
BTextView
and
BWindow
classes (which normally passes the message to a
BTextView
instance) to cut, copy, paste and select all items respectively.
Removes the selected items and moves it to the clipboard.
The Command+X key
combination is normally mapped to B_CUT
Copies the selected items to the clipboard.
The Command+C key
combination is normally mapped to B_COPY
Purpose: | Deliverable |
Source: | Your app. |
Target: | The BStatusBar
you're updating. |
Hook: | BStatusBar::Update() |
You construct and send this message to a
BStatusBar
object to tell it to
(asynchronously) update its progress. To send the message, invoke
BWindow
's
PostMessage()
naming the target
BStatusBar
as the handler:
statusBar
->Window
()->PostMessage
(theMessage
,statusBar
);
Field | Type code | Description |
---|---|---|
delta | B_FLOAT_TYPE | An increment to the object's current value. |
text | B_STRING_TYPE | The object's new text (NULL -terminated). |
trailing_text | B_STRING_TYPE | The object's new trailing text
(NULL -terminated).. |
Purpose: | Deliverable |
Source: | Your app. |
Target: | Reset() |
Hook: | The
BStatusBar
you're resetting. |
You construct and send this message to a
BStatusBar
object to tell it to
(asynchronously) reset itself. The message also lets you reset the
object's labels. To send the message, invoke
BWindow
's
PostMessage()
naming the target
BStatusBar
as the handler:
statusBar
->Window
()->PostMessage
(theMessage
,statusBar
);
Field | Type code | Description |
---|---|---|
label | B_STRING_TYPE | The object's new label (NULL-terminated). |
trailing_label | B_STRING_TYPE | The object's new trailing label
(NULL -terminated).. |
Purpose: | Deliverable |
Source: | A BControl . |
Target: | Selected BMessenger . |
This message is sent to the targeted messenger when a
BControl
-derived
object is invoked.
Purpose: | Deliverable |
Source: | The system. |
Target: | The focus view's BWindow . |
Hook: |
BView::KeyDown() (B_KEY_DOWN )BView::KeyUp() (B_KEY_UP )(The ... UNMAPPED ... messages don't map to hook functions.) |
B_KEY_DOWN
is sent when the user presses (or holds down) a key that's
mapped to a character; B_KEY_UP
is sent when the user releases the key.
B_UNMAPPED_KEY_DOWN
and B_UNMAPPED_KEY_UP
are sent if the key isn't
mapped to a character. This doesn't include modifier keys, which are
reported in the B_MODIFIERS_CHANGED
message.
Field | Type code | Description |
---|---|---|
when | B_INT64_TYPE | Event time, in microseconds since 01/01/70 |
key | B_INT32_TYPE | The code for the physical key that was pressed. See <x> for the key map. |
be:key_repeat (B_KEY_DOWN only) | B_INT32_TYPE | The "iteration number" of this key down. When the user holds the key down, successive messages are sent with increasing key repeat values. This field isn't present in the initial event; the first repeat message (i.e., the second key down message) has a key repeat value of 1. |
modifiers | B_INT32_TYPE | The modifier keys that were in effect at the time of the event. See <x> for a list of values. |
states | B_UINT8_TYPE | The state of all keys at the time of the event. See <x>. |
byte [3]
(B_KEY_DOWN and B_KEY_UP only) | B_INT8_TYPE | The UTF8 data that's generated |
bytes
(B_KEY_DOWN and B_KEY_UP only) | B_STRING_TYPE | The string that's generated. (The string usually contains a single character.) |
raw_char
(B_KEY_DOWN and B_KEY_UP only) | B_INT32_TYPE | Modifier-independent ASCII code for the character. |
Purpose: | Deliverable |
Source: | The system. |
Target: | The focus view's window. |
Hook: |
Sent when the user presses or releases a modifier key.
Field | Type code | Description |
---|---|---|
when | B_INT64_TYPE | Event time, in microseconds since 01/01/70 |
modifiers | B_INT32_TYPE | The current modifier keys. |
be:old_modifiers | B_INT32_TYPE | The previous modifier keys. |
states | B_UINT8_TYPE | The state of all keys at the time of the event. See <x>. |
Purpose: | Deliverable |
Source: | The system. |
Target: | The
BWindow
of the view the mouse is pointing to. |
Hook: | BView::MouseDown() |
Sent when the user presses a mouse button. This message is only sent if no other mouse button is already down.
Field | Type code | Description |
---|---|---|
when | B_INT64_TYPE | Event time, in microseconds since 01/01/70 |
where | B_POINT_TYPE | Mouse location in the view's coordinate system. |
modifiers | B_INT32_TYPE | The modifier keys that were in effect at the time of the event. |
buttons | B_INT32_TYPE | The mouse button that was pressed, one of:
B_PRIMARY_MOUSE_BUTTON ,
B_SECONDARY_MOUSE_BUTTON ,
B_TERTIARY_MOUSE_BUTTON |
clicks | B_INT32_TYPE | 1 for a single-click, 2 for double-click, 3 for triple-click, and so on. The counter is reset if the time between clicks exceeds the "Double-click speed" set by the user in the Mouse preferences. Note that the counter is not reset if the mouse moves between clicks. |
Purpose: | Deliverable |
Source: | The system. |
Target: | The
BWindow
of the view the mouse is pointing to. |
Hook: | BView::MouseMoved() |
Sent when the user moves the mouse.
Field | Type code | Description |
---|---|---|
when | B_INT64_TYPE | Event time, in microseconds since 01/01/70 |
where | B_POINT_TYPE | The mouse's new location in window coordinates. |
buttons | B_INT32_TYPE | The mouse buttons that are down. Zero or more of:
B_PRIMARY_MOUSE_BUTTON ,
B_SECONDARY_MOUSE_BUTTON ,
B_TERTIARY_MOUSE_BUTTON |
Purpose: | Deliverable |
Source: | The system. |
Target: | BWindow
of the view the mouse is pointing to. |
Hook: | BView::MouseUp() |
Sent when the user releases a mouse button. It's only sent if no other mouse button remains down.
Field | Type code | Description |
---|---|---|
when | B_INT64_TYPE | Event time, in microseconds since 01/01/70 |
where | B_POINT_TYPE | Mouse location in the view's coordinate system. |
modifiers | B_INT32_TYPE | The modifier keys that were in effect at the time of the event. |
Purpose: | Deliverable |
Source: | The system. |
Target: | The
BWindow
of the view the mouse is pointing to. |
Hook: |
Sent when the user moves the mouse wheel (on mice that have them).
Field | Type code | Description |
---|---|---|
when | B_INT64_TYPE | Event time, in microseconds since 01/01/70 |
be:wheel_delta_x | B_FLOAT_TYPE | How much the Y value of the wheel has changed. |
be:wheel_delta_y | B_FLOAT_TYPE | How much the Y value of the wheel has changed. |
The standard mouse driver that comes with BeOS only supports a Y-oriented wheel.
Purpose: | Deliverable |
Source: | The Print Server. |
Target: | Everyone. |
Hook: |
Sent whenever the user changes printers. Applications that support printing should watch for this message, and if they receive it, they should suggest that the user check their page setup the next time they choose to print.
Purpose: | Deliverable |
Source: | The system. |
Target: | Every BWindow
in the screen that changed (even hidden windows). |
Hook: | BWindow::ScreenChanged() |
Sent when the screen's dimensions or color space changes—because the user played with the Screen preferences app, for example.
Field | Type code | Description |
---|---|---|
when | B_INT64_TYPE | Event time, in microseconds since 01/01/70 |
frame | B_RECT_TYPE | The screen's dimensions. |
mode | B_INT32_TYPE | The screen's color space:
B_CMAP8 , B_RGB15 ,
B_RGB15 , or BRGB32 . |
Purpose: | Deliverable |
Source: | The system. |
Target: | The manipulated scrollbar's
BWindow . |
Hook: | BScrollBar::ValueChanged() |
Sent when the user plays with a scrollbar.
Field | Type code | Description |
---|---|---|
when | B_INT64_TYPE | Event time, in microseconds since 01/01/70 |
value | B_INT32_TYPE | The scrollbar's new value. |
Purpose: | Deliverable |
Source: | The system. |
Target: | The moved view's
BWindow . |
Hook: | BView::FrameMoved() |
Sent when a view's origin (left top corner) changes relative to the
origin of its parent. The message isn't sent if the view doesn't have the
B_FRAME_EVENTS
flag set.
Field | Type code | Description |
---|---|---|
when | B_INT64_TYPE | Event time, in microseconds since 01/01/70 |
where | B_POINT_TYPE | The view's new origin in the coordinate system of its parent. |
Purpose: | Deliverable |
Source: | The system. |
Target: | The resized view's
BWindow . |
Hook: | BView::FrameResized() |
Sent when the size of the view's frame changes. The message isn't sent if
the view doesn't have the B_FRAME_EVENTS
flag set.
Field | Type code | Description |
---|---|---|
when | B_INT64_TYPE | Event time, in microseconds since 01/01/70 |
width | B_INT32_TYPE | The view's new width. |
height | B_INT32_TYPE | The view's new height. |
where | B_POINT_TYPE | The view's new origin expressed in the coordinate
system of its parent. This field is only included if the view actually
moved while being resized, and can always be ignored: If the view did
move, you'll hear about it in a separate
B_VIEW_MOVED
BMessage . |
Purpose: | Deliverable |
Source: | The system. |
Target: | The activated/deactivated
BWindow . |
Hook: | BWindow::WindowActivated() and
BView::WindowActivated() |
Sent just after a window is activated or deactivated. Note that the
BWindow
invokes WindowActivated()
on each of its views.
Field | Type code | Description |
---|---|---|
when | B_INT64_TYPE | Event time, in microseconds since 01/01/70 |
active | B_BOOL_TYPE | true if the window is
now active; false if not. |
Purpose: | Deliverable. |
Source: | Your application. |
Target: | The
BWindow
to be moved. |
Hook: |
You can send this message to a window to resize it by the specified deltas.
Field | Type code | Description |
---|---|---|
data | B_POINT_TYPE | The amount by which to move the window's X and Y coordinates. |
Purpose: | Deliverable. |
Source: | Your application. |
Target: | The
BWindow
to be moved. |
Hook: |
You can send this message to a window to resize it to the specified size.
Field | Type code | Description |
---|---|---|
data | B_POINT_TYPE | The width and height (in X and Y) to resize the window to. |
Purpose: | Deliverable |
Source: | The system. |
Target: | BWindow
that moved. |
Hook: | BWindow::FrameMoved() |
Sent when a window's origin (left top corner) changes within the screen coordinate system.
Field | Type code | Description |
---|---|---|
when | B_INT64_TYPE | Event time, in microseconds since 01/01/70 |
where | B_POINT_TYPE | The window's new origin in screen coordinates. |
Purpose: | Deliverable |
Source: | The system. |
Target: | The resized
BWindow . |
Hook: | BWindow::FrameResized() |
Sent when the size of the window's frame changes. Note that
the width
and height
fields measure
the window's content area—they don't
include the window border or window tab.
Field | Type code | Description |
---|---|---|
when | B_INT64_TYPE | Event time, in microseconds since 01/01/70 |
width | B_INT32_TYPE | The width of the window's content area. |
height | B_INT32_TYPE | The height of the window's content area. |
Purpose: | Deliverable |
Source: | The system. |
Target: | Every
BWindow
in the activated and deactivated workspaces. |
Hook: | BWindow::WorkspaceActivated() |
Sent when the active workspace changes.
Field | Type code | Description |
---|---|---|
when | B_INT64_TYPE | Event time, in microseconds since 01/01/70 |
workspace | B_INT32_TYPE | The index of the window's workspace. |
active | B_BOOL_TYPE | true if the workspace is now
active; false if not. |
Purpose: | Deliverable |
Source: | The system. |
Target: | The
BWindow
whose set of workspaces changed. |
Hook: | BWindow::WorkspacesChanged() |
Sent when there's a change to the set of workspaces in which a window can appear.
Field | Type code | Description |
---|---|---|
when | B_INT64_TYPE | Event time, in microseconds since 01/01/70 |
old | B_INT32_TYPE | The window's old workspace set, given as a vector of workspace indices. |
new | B_INT32_TYPE | The window's new workspace set, given as a vector of workspace indices. |
Purpose: | Deliverable |
Source: | The system. |
Target: | The BWindow
that was zoomed. |
Hook: | BWindow::Zoom() |
Sent when the user clicks a window's zoom button.
The message has just one data field:
Field | Type code | Description |
---|---|---|
when | B_INT64_TYPE | Event time, in microseconds since 01/01/70 |
Purpose: | Deliverable |
Source: | The system. |
Target: | BApplication . |
Hook: |
Sent to an application when it's first launched to tell it to open in a
specific workspace. The message will be handled during the construction
of the BApplication
object.
Field | Type code | Description |
---|---|---|
be:workspace | B_INT32_TYPE | Workspace number into which the application should open. |
Purpose: | Deliverable |
Source: | The system or your app. |
Target: | The BWindow
that's hidden/unhidden. |
Hook: | BWindow::Minimize() |
Sent when the user double-clicks a window's title bar (to hide the window), or selects a window from the DeskBar's window list (to unhide the window).
Field | Type code | Description |
---|---|---|
when | B_INT64_TYPE | Event time, in microseconds since 01/01/70. |
minimize | B_BOOL_TYPE | true if the
window is being hidden; false if it's
being unhidden. |
Purpose: | Deliverable and format |
Source: | A dragged replicant, or your app. |
Target: | A (remote) application. |
Hook: | BShelf::CanAcceptReplicantMessage() |
The replicant system uses this message as a
deliverable. If you're using
BDragger
and
BShelf
objects, the message is
created and delivered for you. You can also simulate a dragged replicant
by archiving a view, setting the archive message's command to
B_ARCHIVED_OBJECT
, and sending the message to a remote application. If
the remote application has a
BShelf
object, the
BShelf
will pick up the
message (through a BMessageFilter
)
and pass it to the hook function.
To create a simulated replicant message, you call
Archive()
on the view
that you want to replicate, and add (at least) the
add_on
field to the
archive message.
See BShelf
and
BDragger
for
more information about replicants.
B_ARCHIVED_OBJECT
should be used as the command constant for
all archive messages. When you archive an object, the class
field is
automatically added to the archive message. All other fields must be
added by your archiving code. See the
BArchivable
class for more
information about archiving.
Field | Type code | Description |
---|---|---|
class [ ] | B_STRING_TYPE | An array of class names that gives the class hierarchy of the archived object. |
add_on | B_STRING_TYPE | The signature of the library or application that knows how to create the archived object. |
be:add_on_version | B_INT32_TYPE | The version of the add_on. |
be:load_each_time | B_BOOL_TYPE | true : The add_on is loaded each time the
object is unarchived. false : The add_on is
loaded only if it isn't already loaded. |
be:unload_on_delete | B_BOOL_TYPE | Is the add_on unloaded when the unarchived object is deleted? |
shelf_type
(replicants only; optional) | B_STRING_TYPE | The type of shelf that you
want to have display the replicant. A shelf's type is its name, as
assigned when it's created. |