This section describes the messages that your Input Server objects are expected to create and send, and that they're expected to respond to.
Declared in: app/AppDefs.h
This section lists the event messages that a
BInputServerDevice
is expected to create and send through its
EnqueueMessage()
function.
Note that a pointing device isn't expected to send the
B_MOUSE_ENTER_EXIT
message.
Declared in:
add-ons/input_server/InputServerDevice.h
This section lists the control messages that are defined by the BeOS for
pointing and keyboard devices. These are messages that appear in the
BInputServerDevice::Control()
function. Each control message is
identified by the value that appears as the command argument in the
Control()
function. None of the Be-defined control messages use the
additional
BMessage
argument.
Control messages are used to notify input devices of downstream requests.
For example, when the user changes the mouse speed, a
B_MOUSE_SPEED_CHANGED
command is sent back upstream. It's expected that
an input device that receives this message will tune subsequent event
messages that it generates to match the requested mouse speed.
The messages listed below are defined by the BeOS; you can send custom
control messages back upstream through the
BInput::Control()
function. Of course, this is only effective if you install a custom input
device that can handle the messages.
Note that the Be-defined control messages ask a device to set parameters (such as mouse speed), but they never ask a device for the value of a parameter. For example, a pointing device is never asked what the mouse speed is. This is because the Input Server maintains the state of the keyboard and pointing device environments and can answer these requests itself.
Furthermore, the Be-defined control messages don't contain the value of
the parameter that's being set. For example, the
B_MOUSE_SPEED_CHANGED
message doesn't contain the requested mouse speed. The input device must
ask the Input Server for the new value through a global function
(get_mouse_speed()
,
in this case). The functions that correspond to the
messages are listed in the descriptions below.
Constant | Description |
---|---|
| Requests that the receiver change the mouse double-click speed to the
value retrieved through
|
| Requests that the receiver change the mouse map (the correspondence
between physical mouse buttons and the |
| Requests that the receiver change the mouse speed to the value retrieved
through
|
| Requests that the receiver change the mouse type (the number of buttons)
to the type retrieved through
|
Constant | Description |
---|---|
| Requests that the receiver change the state of the locked keys (caps
lock, num lock, etc.). To get the desired state of the locking keys, read
the states out of the key map returned by
|
| Requests that the receiver change the keyboard's key map—the
mapping between physical keys and the character codes they generate. The
new key map is returned by
|
| Requests that the receiver change the delay before a held key starts
generating repeated characters to the value retrieved through
|
| Requests that the receiver change the speed at which a held key generates
repeated characters to the value retrieved through
|
The watch_input_devices()
function lets you ask the Input Server to send
you a message when a device starts or stops, or when the set of
registered devices changes. These "device monitoring" notifications are
sent to the target specified in the function. The command constant is
always B_INPUT_DEVICES_CHANGED.
The be:opcode
field will be one of:
Constant | Description |
---|---|
| An input device has been added to the system. |
| An input device has been removed from the system. |
| An input device has been started. |
| An input device has been stopped. |
Active input methods send input method events
(B_INPUT_METHOD_EVENT
messages) downstream to application views to help integrate the method's
work with the view's display. Inside each
B_INPUT_METHOD_EVENT
message is
a be:opcode
field indicating the type of
input method event:
Constant | Description |
---|---|
| Sent whenever the user changes the text during an input transaction. |
| Sent whenever the input method needs to know the on-screen locations of characters in the input transaction. |
| Sent when a new input transaction is beginning. |
| Sent when an input transaction is completed. |