![]() |
Public API Reference |
Compounds | |
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 | csEventKeyData |
Key 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 | 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. More... | |
#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 either cscmdPreProcess or cscmdPostProcess. More... | |
#define | CSMASK_KeyDown (1 << csevKeyDown) |
Key down events. More... | |
#define | CSMASK_KeyUp (1 << csevKeyUp) |
Key up events. More... | |
#define | CSMASK_MouseMove (1 << csevMouseMove) |
Mouse move events. More... | |
#define | CSMASK_MouseDown (1 << csevMouseDown) |
Mouse down events. More... | |
#define | CSMASK_MouseUp (1 << csevMouseUp) |
Mouse up events. More... | |
#define | CSMASK_MouseClick (1 << csevMouseClick) |
Mouse click events. More... | |
#define | CSMASK_MouseDoubleClick (1 << csevMouseDoubleClick) |
Mouse double click events. More... | |
#define | CSMASK_JoystickMove (1 << csevJoystickMove) |
Joystick movement events. More... | |
#define | CSMASK_JoystickDown (1 << csevJoystickDown) |
Joystick button down events. More... | |
#define | CSMASK_JoystickUp (1 << csevJoystickUp) |
Joystick button up events. More... | |
#define | CSMASK_Command (1 << csevCommand) |
Command message events. More... | |
#define | CSMASK_Broadcast (1 << csevBroadcast) |
Broadcast message events. More... | |
#define | CSMASK_Network (1 << csevNetwork) |
Network message events. More... | |
#define | CSMASK_Keyboard (CSMASK_KeyDown | CSMASK_KeyUp) |
This mask identifies any keyboard event. More... | |
#define | CSMASK_Mouse |
This mask identifies any mouse event. More... | |
#define | CSMASK_Joystick (CSMASK_JoystickMove | CSMASK_JoystickDown | CSMASK_JoystickUp) |
This mask identifies any joystick event. More... | |
#define | CSMASK_Input (CSMASK_Keyboard | CSMASK_Mouse | CSMASK_Joystick) |
This mask identifies any input evemt. More... | |
#define | CS_IS_KEYBOARD_EVENT(e) ((1 << (e).Type) & CSMASK_Keyboard) |
Check if a event is a keyboard event. More... | |
#define | CS_IS_MOUSE_EVENT(e) ((1 << (e).Type) & CSMASK_Mouse) |
Check if a event is a mouse event. More... | |
#define | CS_IS_JOYSTICK_EVENT(e) ((1 << (e).Type) & CSMASK_Joystick) |
Check if a event is a joystick event. More... | |
#define | CS_IS_INPUT_EVENT(e) ((1 << (e).Type) & CSMASK_Input) |
Check if a event is any input event. More... | |
#define | CS_IS_NETWORK_EVENT(e) ((1 << (e).Type) & CSMASK_Network) |
Check if the event is a network event. More... | |
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. More... | |
Modifier key masks | |
Every input event (keyboard, mouse and joystick) contains a Modifiers field which is a bitfield consisting of any combination of the masks below.
Having one in one of the bits means that the corresponding modifier was pressed at the time when event happened. | |
#define | CSMASK_SHIFT 0x00000001 |
"Shift" key mask. More... | |
#define | CSMASK_CTRL 0x00000002 |
"Ctrl" key mask. More... | |
#define | CSMASK_ALT 0x00000004 |
"Alt" key mask. More... | |
#define | CSMASK_ALLSHIFTS (CSMASK_SHIFT | CSMASK_CTRL | CSMASK_ALT) |
All shift keys. More... | |
#define | CSMASK_FIRST 0x80000000 |
Key is pressed for first time or it is an autorepeat? More... | |
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. | |
#define | CSKEY_ESC 27 |
ESCape key. More... | |
#define | CSKEY_ENTER '\n' |
Enter key. More... | |
#define | CSKEY_TAB '\t' |
Tab key. More... | |
#define | CSKEY_BACKSPACE '\b' |
Back-space key. More... | |
#define | CSKEY_SPACE ' ' |
Space key. More... | |
#define | CSKEY_UP 1000 |
Up arrow key. More... | |
#define | CSKEY_DOWN 1001 |
Down arrow key. More... | |
#define | CSKEY_LEFT 1002 |
Left arrow key. More... | |
#define | CSKEY_RIGHT 1003 |
Right arrow key. More... | |
#define | CSKEY_PGUP 1004 |
PageUp key. More... | |
#define | CSKEY_PGDN 1005 |
PageDown key. More... | |
#define | CSKEY_HOME 1006 |
Home key. More... | |
#define | CSKEY_END 1007 |
End key. More... | |
#define | CSKEY_INS 1008 |
Insert key. More... | |
#define | CSKEY_DEL 1009 |
Delete key. More... | |
#define | CSKEY_CTRL 1010 |
Control key. More... | |
#define | CSKEY_ALT 1011 |
Alternative shift key. More... | |
#define | CSKEY_SHIFT 1012 |
Shift key. More... | |
#define | CSKEY_F1 1013 |
Function key F1. More... | |
#define | CSKEY_F2 1014 |
Function key F2. More... | |
#define | CSKEY_F3 1015 |
Function key F3. More... | |
#define | CSKEY_F4 1016 |
Function key F4. More... | |
#define | CSKEY_F5 1017 |
Function key F5. More... | |
#define | CSKEY_F6 1018 |
Function key F6. More... | |
#define | CSKEY_F7 1019 |
Function key F7. More... | |
#define | CSKEY_F8 1020 |
Function key F8. More... | |
#define | CSKEY_F9 1021 |
Function key F9. More... | |
#define | CSKEY_F10 1022 |
Function key F10. More... | |
#define | CSKEY_F11 1023 |
Function key F11. More... | |
#define | CSKEY_F12 1024 |
Function key F12. More... | |
#define | CSKEY_CENTER 1025 |
The "center" key ("5" on numeric keypad). More... | |
#define | CSKEY_PADPLUS 1026 |
Numeric keypad '+'. More... | |
#define | CSKEY_PADMINUS 1027 |
Numeric keypad '-'. More... | |
#define | CSKEY_PADMULT 1028 |
Numeric keypad '*'. More... | |
#define | CSKEY_PADDIV 1029 |
Numeric keypad '/'. More... | |
#define | CSKEY_FIRST 1000 |
First control key code. More... | |
#define | CSKEY_LAST 1029 |
Last control key code. 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. More... | |
#define | CSEVTYPE_Mouse 0x00000002 |
Mouse events. More... | |
#define | CSEVTYPE_Joystick 0x00000004 |
Joystick events. More... | |
Defines | |
#define | CS_MAX_MOUSE_BUTTONS 10 |
Maximal number of mouse buttons supported. More... | |
#define | CS_MAX_JOYSTICK_COUNT 2 |
Maximal number of joysticks supported. More... | |
#define | CS_MAX_JOYSTICK_BUTTONS 10 |
Maximal number of joystick buttons supported. More... | |
Enumerations | |
enum | { csevNothing = 0, csevKeyDown, csevKeyUp, csevMouseMove, csevMouseDown, csevMouseUp, csevMouseClick, csevMouseDoubleClick, csevJoystickMove, csevJoystickDown, csevJoystickUp, csevCommand, csevBroadcast, csevNetwork, csevMouseEnter, csevMouseExit, csevLostFocus, csevGainFocus, csevGroupOff, csevFrameStart } |
System Events. More... | |
enum | { cscmdNothing = 0, cscmdQuit, cscmdFocusChanged, cscmdSystemOpen, cscmdSystemClose, cscmdContextResize, cscmdContextClose, cscmdCommandLineHelp, cscmdPreProcess, cscmdProcess, cscmdPostProcess, cscmdFinalProcess, cscmdCanvasHidden, cscmdCanvasExposed } |
General Command Codes. More... |
...................... .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.
|
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 43 of file iutil/csinput.h. Referenced by csJoystickDriver::GetLastButton. |
|
Maximal number of joysticks supported.
Definition at line 41 of file iutil/csinput.h. Referenced by csJoystickDriver::GetLastButton. |
|
Maximal number of mouse buttons supported.
Definition at line 39 of file iutil/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.
|
|
Alternative shift key.
|
|
Back-space key.
|
|
The "center" key ("5" on numeric keypad).
|
|
Control key.
|
|
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.
|
|
First control key code.
|
|
Home key.
|
|
Insert key.
|
|
Last control key code.
|
|
Left arrow key.
|
|
Numeric keypad '/'.
|
|
Numeric keypad '-'.
|
|
Numeric keypad '*'.
|
|
Numeric keypad '+'.
|
|
PageDown key.
|
|
PageUp key.
|
|
Right arrow key.
|
|
Shift key.
|
|
Space key.
|
|
Tab key.
|
|
Up arrow key.
|
|
All shift keys.
|
|
"Alt" key mask.
|
|
Broadcast message events.
|
|
Command message events.
|
|
"Ctrl" key mask.
|
|
Key is pressed for first time or it is an autorepeat?
|
|
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.
|
|
This mask identifies any input evemt.
|
|
This mask identifies any joystick event.
|
|
Joystick button down events.
|
|
Joystick movement events.
|
|
Joystick button up events.
|
|
This mask identifies any keyboard event.
|
|
Key down events.
|
|
Key up 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. |
|
"Shift" key mask.
|
|
|
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 ... } *
|