Event handling
Compounds | |
struct | _csKeyModifiers |
Flags for all currently pressed modifiers. More... | |
class | csBaseEventHandler |
Base implementation of a generic event handler. More... | |
struct | iEvent |
This interface describes any system event. More... | |
struct | csEventCommandData |
Command event data in iEvent. More... | |
struct | iEventCord |
The iEventCord is an interface provided by an event queue to any event handlers wanting to receive some subclasses of events ASAP in a specified priority, bypassing the queue itself. More... | |
struct | iEventHandler |
This interface describes an entity that can receive events. More... | |
struct | csEventJoystickData |
Joystick event data in iEvent. More... | |
struct | csEventMouseData |
Mouse event data in iEvent. More... | |
struct | csEventNetworkData |
Network event data in iEvent. More... | |
struct | iEventOutlet |
The iEventOutlet is the interface to an object that is provided by an event queue to every event plug when it registers itself. More... | |
struct | iEventPlug |
Event plug interface, also referred as "event source". More... | |
struct | iEventQueue |
This interface represents a general event queue. More... | |
struct | iJoystickDriver |
Generic Joystick driver. More... | |
struct | iKeyboardDriver |
Generic Keyboard Driver. More... | |
struct | iKeyComposer |
Keyboard input handler. More... | |
struct | csKeyEventData |
Structure that collects the data a keyboard event carries. More... | |
class | csKeyEventHelper |
Helper class to conveniently deal with keyboard events. More... | |
struct | iMouseDriver |
Generic Mouse Driver. More... | |
Event masks | |
The event masks can be used by plugins to tell an event queue, via iEventQueue::RegisterListener, which kinds of events they want to receive at their HandleEvent() entry.
If a plugin registers to receive CSMASK_Nothing events it is always called once per frame, so that plugin can do some per-frame processing. | |
#define | CSMASK_Nothing (1 << csevNothing) |
Event mask: Empty event. | |
#define | CSMASK_FrameProcess CSMASK_Nothing |
The plugin will be called at the start of every frame and at the end of every frame with an csevBroadcast event with the Event.Command.Code equal to cscmdPreProcess, csProcess, cscmdPostProcess, or cscmdFinalProcess. | |
#define | CSMASK_Keyboard (1 << csevKeyboard) |
Keyboard events. | |
#define | CSMASK_MouseMove (1 << csevMouseMove) |
Mouse move events. | |
#define | CSMASK_MouseDown (1 << csevMouseDown) |
Mouse down events. | |
#define | CSMASK_MouseUp (1 << csevMouseUp) |
Mouse up events. | |
#define | CSMASK_MouseClick (1 << csevMouseClick) |
Mouse click events. | |
#define | CSMASK_MouseDoubleClick (1 << csevMouseDoubleClick) |
Mouse double click events. | |
#define | CSMASK_JoystickMove (1 << csevJoystickMove) |
Joystick movement events. | |
#define | CSMASK_JoystickDown (1 << csevJoystickDown) |
Joystick button down events. | |
#define | CSMASK_JoystickUp (1 << csevJoystickUp) |
Joystick button up events. | |
#define | CSMASK_Command (1 << csevCommand) |
Command message events. | |
#define | CSMASK_Broadcast (1 << csevBroadcast) |
Broadcast message events. | |
#define | CSMASK_Network (1 << csevNetwork) |
Network message events. | |
#define | CSMASK_Mouse |
This mask identifies any mouse event. | |
#define | CSMASK_Joystick (CSMASK_JoystickMove | CSMASK_JoystickDown | CSMASK_JoystickUp) |
This mask identifies any joystick event. | |
#define | CSMASK_Input (CSMASK_Keyboard | CSMASK_Mouse | CSMASK_Joystick) |
This mask identifies any input evemt. | |
#define | CS_IS_KEYBOARD_EVENT(e) ((1 << (e).Type) & CSMASK_Keyboard) |
Check if a event is a keyboard event. | |
#define | CS_IS_MOUSE_EVENT(e) ((1 << (e).Type) & CSMASK_Mouse) |
Check if a event is a mouse event. | |
#define | CS_IS_JOYSTICK_EVENT(e) ((1 << (e).Type) & CSMASK_Joystick) |
Check if a event is a joystick event. | |
#define | CS_IS_INPUT_EVENT(e) ((1 << (e).Type) & CSMASK_Input) |
Check if a event is any input event. | |
#define | CS_IS_NETWORK_EVENT(e) ((1 << (e).Type) & CSMASK_Network) |
Check if the event is a network event. | |
Event flags masks | |
Every event has a `flags' field which describes miscelaneous aspects of the event.
The following constants describes every used bit of the `flags' field. | |
#define | CSEF_BROADCAST 0x00000001 |
Event flag: Ignore `true' returned from HandleEvent which says that event has been processed and should not be processed anymore. | |
Modifier key masks | |
csKeyEventHelper::GetModifiersBits() returns such a bitfields consisting of any combination of the masks below.
Having one in one of the bits means that the corresponding modifier was pressed in the modifier state passed in. | |
#define | CSMASK_SHIFT (1 << csKeyModifierTypeShift) |
"Shift" key mask | |
#define | CSMASK_CTRL (1 << csKeyModifierTypeCtrl) |
"Ctrl" key mask | |
#define | CSMASK_ALT (1 << csKeyModifierTypeAlt) |
"Alt" key mask | |
#define | CSMASK_ALLSHIFTS (CSMASK_SHIFT | CSMASK_CTRL | CSMASK_ALT) |
All shift keys. | |
#define | CSMASK_CAPSLOCK (1 << csKeyModifierTypeCapsLock) |
"CapsLock" key mask | |
#define | CSMASK_NUMLOCK (1 << csKeyModifierTypeNumLock) |
"NumLock" key mask | |
#define | CSMASK_SCROLLLOCK (1 << csKeyModifierTypeScrollLock) |
"ScrollLock" key mask | |
#define | CSMASK_ALLMODIFIERS |
All modifiers, shift and lock types. | |
Control key codes | |
Not every existing key on any existing platform is supported by Crystal Space.
Instead, we tried to list here all the keys that are common among all platforms on which Crystal Space runs. There may still be some keys that aren't supported on some platforms, tho.
Be aware that the range of the special keys has been arbitrarily, but careful chosen. In particular, all special keys fall into a part of the Unicode "Supplementary Private Use Area-B", so all keycodes in CS are always valid Unicode codepoints. | |
#define | CSKEY_ESC 27 |
ESCape key. | |
#define | CSKEY_ENTER '\n' |
Enter key. | |
#define | CSKEY_TAB '\t' |
Tab key. | |
#define | CSKEY_BACKSPACE '\b' |
Back-space key. | |
#define | CSKEY_SPACE ' ' |
Space key. | |
#define | CSKEY_SPECIAL_FIRST 0x108000 |
The lowest code of a special key. | |
#define | CSKEY_SPECIAL_LAST 0x10fffd |
The highest code of a special key. | |
#define | CSKEY_SPECIAL(code) (CSKEY_SPECIAL_FIRST + (code)) |
Helper macro to construct a special key code. | |
#define | CSKEY_IS_SPECIAL(rawCode) ((rawCode >= CSKEY_SPECIAL_FIRST) && (rawCode <= CSKEY_SPECIAL_LAST)) |
Helper macro to determine whether a key code identifies a special key. | |
#define | CSKEY_SPECIAL_NUM(rawCode) (rawCode - CSKEY_SPECIAL_FIRST) |
Helper macro to determine the parameter that was given to CSKEY_SPECIAL. | |
#define | CSKEY_UP CSKEY_SPECIAL(0x00) |
Up arrow key. | |
#define | CSKEY_DOWN CSKEY_SPECIAL(0x01) |
Down arrow key. | |
#define | CSKEY_LEFT CSKEY_SPECIAL(0x02) |
Left arrow key. | |
#define | CSKEY_RIGHT CSKEY_SPECIAL(0x03) |
Right arrow key. | |
#define | CSKEY_PGUP CSKEY_SPECIAL(0x04) |
PageUp key. | |
#define | CSKEY_PGDN CSKEY_SPECIAL(0x05) |
PageDown key. | |
#define | CSKEY_HOME CSKEY_SPECIAL(0x06) |
Home key. | |
#define | CSKEY_END CSKEY_SPECIAL(0x07) |
End key. | |
#define | CSKEY_INS CSKEY_SPECIAL(0x08) |
Insert key. | |
#define | CSKEY_DEL CSKEY_SPECIAL(0x09) |
Delete key. | |
#define | CSKEY_CONTEXT CSKEY_SPECIAL(0x0a) |
The "Context menu" key on Windows keyboards. | |
#define | CSKEY_PRINTSCREEN CSKEY_SPECIAL(0x0b) |
The Print Screen key. | |
#define | CSKEY_PAUSE CSKEY_SPECIAL(0x0c) |
The Pause key. | |
#define | CSKEY_F1 CSKEY_SPECIAL(0x10) |
Function key F1. | |
#define | CSKEY_F2 CSKEY_SPECIAL(0x11) |
Function key F2. | |
#define | CSKEY_F3 CSKEY_SPECIAL(0x12) |
Function key F3. | |
#define | CSKEY_F4 CSKEY_SPECIAL(0x13) |
Function key F4. | |
#define | CSKEY_F5 CSKEY_SPECIAL(0x14) |
Function key F5. | |
#define | CSKEY_F6 CSKEY_SPECIAL(0x15) |
Function key F6. | |
#define | CSKEY_F7 CSKEY_SPECIAL(0x16) |
Function key F7. | |
#define | CSKEY_F8 CSKEY_SPECIAL(0x17) |
Function key F8. | |
#define | CSKEY_F9 CSKEY_SPECIAL(0x18) |
Function key F9. | |
#define | CSKEY_F10 CSKEY_SPECIAL(0x19) |
Function key F10. | |
#define | CSKEY_F11 CSKEY_SPECIAL(0x1a) |
Function key F11. | |
#define | CSKEY_F12 CSKEY_SPECIAL(0x1b) |
Function key F12. | |
#define | CSKEY_MODIFIER_FIRST 0x2000 |
The lowest code of a modifier key. | |
#define | CSKEY_MODIFIER_LAST 0x3fff |
The highest code of a modifier key. | |
#define | CSKEY_MODIFIERTYPE_SHIFT 5 |
#define | CSKEY_MODIFIER(type, num) CSKEY_SPECIAL(CSKEY_MODIFIER_FIRST + (type << CSKEY_MODIFIERTYPE_SHIFT) + num) |
Helper macro to construct a modifiers key code. | |
#define | CSKEY_IS_MODIFIER(rawCode) |
Helper macro to test whether a key code identifies a modifier. | |
#define | CSKEY_MODIFIER_TYPE(rawCode) |
Helper macro to determine the modifier type of a key code. | |
#define | CSKEY_MODIFIER_NUM(rawCode) |
Helper macro to determine the modifier number of a key code. | |
#define | CSKEY_SHIFT_NUM(n) CSKEY_MODIFIER(csKeyModifierTypeShift,n) |
Construct a key code for the Shift modifier key number n. | |
#define | CSKEY_SHIFT_FIRST CSKEY_SHIFT_NUM(0) |
Lowest code of the Shift modifier keys. | |
#define | CSKEY_SHIFT_LAST CSKEY_SHIFT_NUM(0x1e) |
Highest code of the Shift modifier keys. | |
#define | CSKEY_SHIFT_LEFT CSKEY_SHIFT_NUM(csKeyModifierNumLeft) |
Left Shift. | |
#define | CSKEY_SHIFT_RIGHT CSKEY_SHIFT_NUM(csKeyModifierNumRight) |
Right Shift. | |
#define | CSKEY_SHIFT CSKEY_SHIFT_NUM(csKeyModifierNumAny) |
Undistinguished Shift. | |
#define | CSKEY_CTRL_NUM(n) CSKEY_MODIFIER(csKeyModifierTypeCtrl,n) |
Construct a key code for the Ctrl modifier key number n. | |
#define | CSKEY_CTRL_FIRST CSKEY_CTRL_NUM(0) |
Lowest code of the Ctrl modifier keys. | |
#define | CSKEY_CTRL_LAST CSKEY_CTRL_NUM(0x1e) |
Highest code of the Ctrl modifier keys. | |
#define | CSKEY_CTRL_LEFT CSKEY_CTRL_NUM(csKeyModifierNumLeft) |
Left Ctrl. | |
#define | CSKEY_CTRL_RIGHT CSKEY_CTRL_NUM(csKeyModifierNumRight) |
Right Ctrl. | |
#define | CSKEY_CTRL CSKEY_CTRL_NUM(csKeyModifierNumAny) |
Undistinguished Ctrl. | |
#define | CSKEY_ALT_NUM(n) CSKEY_MODIFIER(csKeyModifierTypeAlt,n) |
Construct a key code for the Alt modifier key number n. | |
#define | CSKEY_ALT_FIRST CSKEY_ALT_NUM(0) |
Lowest code of the Alt modifier keys. | |
#define | CSKEY_ALT_LAST CSKEY_ALT_NUM(0x1e) |
Highest code of the Alt modifier keys. | |
#define | CSKEY_ALT_LEFT CSKEY_ALT_NUM(csKeyModifierNumLeft) |
Left Alt. | |
#define | CSKEY_ALT_RIGHT CSKEY_ALT_NUM(csKeyModifierNumRight) |
Right Alt. | |
#define | CSKEY_ALT CSKEY_ALT_NUM(csKeyModifierNumAny) |
Undistinguished Alt. | |
#define | CSKEY_PAD_FLAG 0x4000 |
Bit that is set if a key is from the keypad. | |
#define | CSKEY_PAD_KEY(code) CSKEY_SPECIAL((unsigned int)code | CSKEY_PAD_FLAG) |
Helper macro to construct a keypade key code. | |
#define | CSKEY_IS_PAD_KEY(rawCode) ((rawCode & CSKEY_PAD_FLAG) != 0) |
Helper macro to test whether a key code identifies a keypad key. | |
#define | CSKEY_PAD_TO_NORMAL(rawCode) (rawCode & (~CSKEY_PAD_FLAG)) |
Helper macro to convert a 'pad' key code into a 'normal' special key code. | |
#define | CSKEY_PAD1 CSKEY_PAD_KEY('1') |
Keypad 1. | |
#define | CSKEY_PAD2 CSKEY_PAD_KEY('2') |
Keypad 2. | |
#define | CSKEY_PAD3 CSKEY_PAD_KEY('3') |
Keypad 3. | |
#define | CSKEY_PAD4 CSKEY_PAD_KEY('4') |
Keypad 4. | |
#define | CSKEY_PAD5 CSKEY_PAD_KEY('5') |
Keypad 5. | |
#define | CSKEY_CENTER CSKEY_PAD5 |
Keypad "Center" (5). | |
#define | CSKEY_PAD6 CSKEY_PAD_KEY('6') |
Keypad 6. | |
#define | CSKEY_PAD7 CSKEY_PAD_KEY('7') |
Keypad 7. | |
#define | CSKEY_PAD8 CSKEY_PAD_KEY('8') |
Keypad 8. | |
#define | CSKEY_PAD9 CSKEY_PAD_KEY('9') |
Keypad 9. | |
#define | CSKEY_PAD0 CSKEY_PAD_KEY('0') |
Keypad 0. | |
#define | CSKEY_PADDECIMAL CSKEY_PAD_KEY('.') |
Keypad Decimal ('.' on English keyboards). | |
#define | CSKEY_PADDIV CSKEY_PAD_KEY('/') |
Keypad Divide. | |
#define | CSKEY_PADMULT CSKEY_PAD_KEY('*') |
Keypad Multiply. | |
#define | CSKEY_PADMINUS CSKEY_PAD_KEY('-') |
Keypad Minus. | |
#define | CSKEY_PADPLUS CSKEY_PAD_KEY('+') |
Keypad Plus. | |
#define | CSKEY_PADENTER CSKEY_PAD_KEY('\n') |
Keypad Enter. | |
#define | CSKEY_PADNUM CSKEY_MODIFIER(csKeyModifierTypeNumLock,csKeyModifierNumAny) | CSKEY_PAD_FLAG |
NumLock key. | |
#define | CSKEY_CAPSLOCK CSKEY_MODIFIER(csKeyModifierTypeCapsLock,csKeyModifierNumAny) |
CapsLock key. | |
#define | CSKEY_SCROLLLOCK CSKEY_MODIFIER(csKeyModifierTypeScrollLock,csKeyModifierNumAny) |
ScrollLock key. | |
typedef enum _csKeyCharType | csKeyCharType |
Character types. | |
enum | _csKeyCharType { csKeyCharTypeNormal = 0, csKeyCharTypeDead } |
Character types. More... | |
Event class masks | |
Every event plug should provide information about which event types that may conflict with other event plugs it is able to generate.
The system driver checks it and if several event plugs generates conflicting types events, one of them (the one with lower priority) is disabled. | |
#define | CSEVTYPE_Keyboard 0x00000001 |
Keyboard events. | |
#define | CSEVTYPE_Mouse 0x00000002 |
Mouse events. | |
#define | CSEVTYPE_Joystick 0x00000004 |
Joystick events. | |
Modifier keys | |
| |
typedef enum _csKeyModifierType | csKeyModifierType |
Modifier types. | |
typedef enum _csKeyModifierNumType | csKeyModifierNumType |
Modifier numbers. | |
typedef _csKeyModifiers | csKeyModifiers |
Flags for all currently pressed modifiers. | |
enum | _csKeyModifierType { csKeyModifierTypeShift = 0, csKeyModifierTypeCtrl, csKeyModifierTypeAlt, csKeyModifierTypeCapsLock, csKeyModifierTypeNumLock, csKeyModifierTypeScrollLock } |
Modifier types. More... | |
enum | _csKeyModifierNumType { csKeyModifierNumLeft = 0, csKeyModifierNumRight, csKeyModifierNumAny = 0x1f } |
Modifier numbers. More... | |
Defines | |
#define | CS_MAX_MOUSE_BUTTONS 10 |
Maximal number of mouse buttons supported. | |
#define | CS_MAX_JOYSTICK_COUNT 2 |
Maximal number of joysticks supported. | |
#define | CS_MAX_JOYSTICK_BUTTONS 10 |
Maximal number of joystick buttons supported. | |
Typedefs | |
typedef enum _csEventType | csEventType |
System Events. | |
typedef enum _csKeyEventType | csKeyEventType |
Keyboard event type. | |
typedef enum _csCommandEventCode | csCommandEventCode |
General Command Codes. | |
Enumerations | |
enum | csKeyComposeResult { csComposeNoChar = -1, csComposeNormalChar, csComposeComposedChar, csComposeUncomposeable } |
Results for attempts to process a character key. More... | |
enum | _csEventType { csevNothing = 0, csevKeyboard, csevMouseMove, csevMouseDown, csevMouseUp, csevMouseClick, csevMouseDoubleClick, csevJoystickMove, csevJoystickDown, csevJoystickUp, csevCommand, csevBroadcast, csevNetwork, csevMouseEnter, csevMouseExit, csevLostFocus, csevGainFocus, csevGroupOff, csevFrameStart } |
System Events. More... | |
enum | _csKeyEventType { csKeyEventTypeUp = 0, csKeyEventTypeDown } |
Keyboard event type. More... | |
enum | _csCommandEventCode { cscmdNothing = 0, cscmdQuit, cscmdFocusChanged, cscmdSystemOpen, cscmdSystemClose, cscmdContextResize, cscmdContextClose, cscmdCommandLineHelp, cscmdPreProcess, cscmdProcess, cscmdPostProcess, cscmdFinalProcess, cscmdCanvasHidden, cscmdCanvasExposed } |
General Command Codes. More... |
Keyboard events
Keyboard events are emitted when the user does something with the keyboard - presses down a key ("key down" events), holds it down (more "key down" events in a specific interval - "auto-repeat") and releases it ("key up".)Every keyboard event has a bunch of data associated with it. First, there is a code to identify the key: the 'raw' code. It uniquely identifies the key, and every key has a distinct code, independent from any pressed modifiers: For example, pressing the "A" key will always result in the raw code 'a', holding shift or any other modifier down won't change it. However, the 'cooked' code contains such additional information: If Shift+A is pressed, the cooked code will be 'A', while the raw code is still 'a'. Other keys are also normalized; for example keypad keys: pressing "9" will result in either CSKEY_PGUP or '9', depending on the NumLock state. So, the same key can result in different 'cooked' codes, and the same 'cooked' code can be caused by different keys.
Other data contained in a keyboard event is:
- Whether it is a key up or down event
- Whether it is an autorepeat of an earlier keypress
- Modifiers at the time of the keypress
- When it is a character, whether it is a normal or dead character
Keyboard event data is stored as properties of iEvent, accessible thorugh iEvent->Find() and iEvent->Add().
Property Name | Type | Description |
keyEventType | csKeyEventType (stored as uint8) | Event type (up vs down) |
keyCodeRaw | uint32 | Raw key code |
keyCodeCooked | uint32 | Cooked key code |
keyModifiers | csKeyModifiers | Modifiers at time of the key press |
keyAutoRepeat | bool | Autorepeat flag |
keyCharType | csKeyCharType (stored as uint8) | Character type |
A way to retrieve an keyboard event's data without requiring a plethora of iEvent->Find() invocations provides the csKeyEventHelper class.
Also see iKeyComposer for informations about composing accented etc. characters from dead and normal keys.
Overall structure of the basic event flow in Crystal Space
...................... .User application . . +----------------+ . +-->+ Event consumer | . | . +----------------+ . | ...................... | | ..................................... | .System driver plugin . | . +------+ . +-----+ | . +<-|event +-<<--+event| | . +---------------+ | |outlet| . |plug | +-----+ event queue +<--+ +------+ . +-----+ | . +---------------+ | +------+ . +-----+ | . +<-|event +-<<--+event| | . +---------------+ | |outlet| . |plug | +-----+ event cord +<--| +------+ . +-----+ . +---------------+ | +------+ . +-----+ . +<-|event +-<<--+event| . |outlet| . |plug | . +------+ . +-----+ . .... . ... .....................................The events are generated by 'event plugs' which are plugged into 'event outlets'. The event outlets are reponsible for filtering the possibly duplicate messages that are coming from different event plugs (for example two different plugs may both intercept the keyboard and generate duplicate keydown events).
Events are put into the event queue, from where they are sent to applications and plugins. Event cords bypass the queue for specific command event categories and deliver events immediately in a prioritizied chain to specific plugins which request the categories.
Define Documentation
|
Check if a event is any input event.
|
|
Check if a event is a joystick event.
|
|
Check if a event is a keyboard event.
|
|
Check if a event is a mouse event.
|
|
Check if the event is a network event.
|
|
Maximal number of joystick buttons supported.
Definition at line 45 of file csinput.h. Referenced by csJoystickDriver::GetLastButton(). |
|
Maximal number of joysticks supported.
Definition at line 43 of file csinput.h. Referenced by csJoystickDriver::GetLastButton(). |
|
Maximal number of mouse buttons supported.
Definition at line 41 of file csinput.h. Referenced by csMouseDriver::GetLastButton(). |
|
Event flag: Ignore `true' returned from HandleEvent which says that event has been processed and should not be processed anymore. Normally this is set only for csevBroadcast events. |
|
Joystick events.
|
|
Keyboard events.
|
|
Mouse events.
|
|
Undistinguished Alt.
|
|
Lowest code of the Alt modifier keys.
|
|
Highest code of the Alt modifier keys.
|
|
Left Alt.
|
|
Construct a key code for the Alt modifier key number n.
|
|
Right Alt.
|
|
Back-space key.
|
|
CapsLock key.
|
|
Keypad "Center" (5).
|
|
The "Context menu" key on Windows keyboards.
|
|
Undistinguished Ctrl.
|
|
Lowest code of the Ctrl modifier keys.
|
|
Highest code of the Ctrl modifier keys.
|
|
Left Ctrl.
|
|
Construct a key code for the Ctrl modifier key number n.
|
|
Right Ctrl.
|
|
Delete key.
|
|
Down arrow key.
|
|
End key.
|
|
Enter key.
|
|
ESCape key.
|
|
Function key F1.
|
|
Function key F10.
|
|
Function key F11.
|
|
Function key F12.
|
|
Function key F2.
|
|
Function key F3.
|
|
Function key F4.
|
|
Function key F5.
|
|
Function key F6.
|
|
Function key F7.
|
|
Function key F8.
|
|
Function key F9.
|
|
Home key.
|
|
Insert key.
|
|
Value: (CSKEY_IS_SPECIAL(rawCode) && \ ((CSKEY_SPECIAL_NUM(rawCode) >= CSKEY_MODIFIER_FIRST) && \ (CSKEY_SPECIAL_NUM(rawCode) <= CSKEY_MODIFIER_LAST)))
|
|
Helper macro to test whether a key code identifies a keypad key.
|
|
Helper macro to determine whether a key code identifies a special key.
|
|
Left arrow key.
|
|
Helper macro to construct a modifiers key code.
|
|
The lowest code of a modifier key.
|
|
The highest code of a modifier key.
|
|
Value: ((rawCode - CSKEY_MODIFIER_FIRST - CSKEY_SPECIAL_FIRST) & \ ((1 << CSKEY_MODIFIERTYPE_SHIFT) - 1))
|
|
Value: ((rawCode - CSKEY_MODIFIER_FIRST - CSKEY_SPECIAL_FIRST) >> \ CSKEY_MODIFIERTYPE_SHIFT)
|
|
Keypad 0.
|
|
Keypad 1.
|
|
Keypad 2.
|
|
Keypad 3.
|
|
Keypad 4.
|
|
Keypad 5.
|
|
Keypad 6.
|
|
Keypad 7.
|
|
Keypad 8.
|
|
Keypad 9.
|
|
Bit that is set if a key is from the keypad.
|
|
Helper macro to construct a keypade key code.
|
|
Helper macro to convert a 'pad' key code into a 'normal' special key code.
|
|
Keypad Decimal ('.' on English keyboards).
|
|
Keypad Divide.
|
|
Keypad Enter.
|
|
Keypad Minus.
|
|
Keypad Multiply.
|
|
NumLock key. Both a modifier and a keypad key. |
|
Keypad Plus.
|
|
The Pause key.
|
|
PageDown key.
|
|
PageUp key.
|
|
The Print Screen key.
|
|
Right arrow key.
|
|
ScrollLock key.
|
|
Undistinguished Shift.
|
|
Lowest code of the Shift modifier keys.
|
|
Highest code of the Shift modifier keys.
|
|
Left Shift.
|
|
Construct a key code for the Shift modifier key number n.
|
|
Right Shift.
|
|
Space key.
|
|
Helper macro to construct a special key code.
|
|
The lowest code of a special key.
|
|
The highest code of a special key.
|
|
Helper macro to determine the parameter that was given to CSKEY_SPECIAL.
|
|
Tab key.
|
|
Up arrow key.
|
|
Value: All modifiers, shift and lock types.
|
|
All shift keys.
|
|
"Alt" key mask
|
|
Broadcast message events.
|
|
"CapsLock" key mask
|
|
Command message events.
|
|
"Ctrl" key mask
|
|
The plugin will be called at the start of every frame and at the end of every frame with an csevBroadcast event with the Event.Command.Code equal to cscmdPreProcess, csProcess, cscmdPostProcess, or cscmdFinalProcess.
|
|
This mask identifies any input evemt.
|
|
This mask identifies any joystick event.
|
|
Joystick button down events.
|
|
Joystick movement events.
|
|
Joystick button up events.
|
|
Keyboard events.
|
|
Value: (CSMASK_MouseMove | CSMASK_MouseDown | CSMASK_MouseUp | CSMASK_MouseClick | \ CSMASK_MouseDoubleClick)
|
|
Mouse click events.
|
|
Mouse double click events.
|
|
Mouse down events.
|
|
Mouse move events.
|
|
Mouse up events.
|
|
Network message events.
|
|
Event mask: Empty event. If a plugin registers to receive this kind of events via iEventQueue::RegisterListener(plugin, CSMASK_Nothing) this has a special meaning: the plugin will be called at the start of every frame and at the end of every frame with an csevBroadcast event with the Event.Command.Code equal to either cscmdPreProcess or cscmdPostProcess. |
|
"NumLock" key mask
|
|
"ScrollLock" key mask
|
|
"Shift" key mask
|
Typedef Documentation
|
General Command Codes.
The list below does not contain all defined command codes; these are only the most general ones. Crystal Space Windowing System has a broad range of predefined commands; look in CSWS header files for more info. Basically CSWS uses command codes below 0x80000000; user applications should use command codes above this number, for example: enum { cscmdMyCommand1 = 0xdeadf00d, cscmdMyCommand2, cscmdMyCommand3 ... } * |
|
System Events.
|
|
Character types.
|
|
Keyboard event type.
|
|
Modifier numbers.
|
|
Flags for all currently pressed modifiers.
|
|
Modifier types.
|
Enumeration Type Documentation
|
General Command Codes.
The list below does not contain all defined command codes; these are only the most general ones. Crystal Space Windowing System has a broad range of predefined commands; look in CSWS header files for more info. Basically CSWS uses command codes below 0x80000000; user applications should use command codes above this number, for example: enum { cscmdMyCommand1 = 0xdeadf00d, cscmdMyCommand2, cscmdMyCommand3 ... } *
|
|
System Events.
|
|
Character types.
|
|
Keyboard event type.
|
|
Modifier numbers.
|
|
Modifier types.
|
|
Generated for Crystal Space by doxygen 1.2.18