|
evdefs.h00001 /* 00002 Event system related interfaces 00003 Written by Andrew Zabolotny <bit@eltech.ru> 00004 00005 This program is free software; you can redistribute it and/or modify 00006 it under the terms of the GNU General Public License as published by 00007 the Free Software Foundation; either version 2 of the License, or 00008 (at your option) any later version. 00009 00010 This program is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with this program; if not, write to the Free Software 00017 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00018 */ 00019 00020 /* 00021 *WARNING* 00022 This file must contain only plain-C code. Do _not_ insert C++ code. 00023 This file is imported by non-C++ system driver implementations. 00024 00025 */ 00026 00027 #ifndef __IUTIL_EVDEFS_H__ 00028 #define __IUTIL_EVDEFS_H__ 00029 00031 enum 00032 { 00033 csevNothing = 0, 00034 csevKeyDown, // A key has been pressed 00035 csevKeyUp, // A key has been released 00036 csevMouseMove, // Mouse has been moved 00037 csevMouseDown, // A mouse button has been pressed 00038 csevMouseUp, // A mouse button has been released 00039 csevMouseClick, // A mouse button has been clicked 00040 csevMouseDoubleClick, // A mouse button has been clicked twice 00041 csevJoystickMove, // A joystick axis has been moved 00042 csevJoystickDown, // A joystick button has been pressed 00043 csevJoystickUp, // A joystick button has been released 00044 csevCommand, // Somebody(-thing) sent a command 00045 csevBroadcast, // Somebody(-thing) sent a broadcast command 00046 csevNetwork , // Something has arrived on network. 00047 csevMouseEnter, // The mouse has entered a component 00048 csevMouseExit, // The mouse has exited a component 00049 csevLostFocus, // The component has lost keyboard focus 00050 csevGainFocus, // The component has gained keyboard focus 00051 csevGroupOff, // A component in a group has been selected, 00052 // everyone else should go to their off state. 00053 csevFrameStart // The frame is about to draw. 00054 }; 00055 00056 /* 00057 * Event masks.<p> 00058 * The event masks can be used by plugins to tell an event queue, via 00059 * iEventQueue::RegisterListener, which kinds of events they want to receive at 00060 * their HandleEvent() entry. If a plugin registers to receive CSMASK_Nothing 00061 * events it is always called once per frame, so that plugin can do some 00062 * per-frame processing. 00063 */ 00071 #define CSMASK_Nothing (1 << csevNothing) 00072 00073 #define CSMASK_KeyDown (1 << csevKeyDown) 00074 00075 #define CSMASK_KeyUp (1 << csevKeyUp) 00076 00077 #define CSMASK_MouseMove (1 << csevMouseMove) 00078 00079 #define CSMASK_MouseDown (1 << csevMouseDown) 00080 00081 #define CSMASK_MouseUp (1 << csevMouseUp) 00082 00083 #define CSMASK_MouseClick (1 << csevMouseClick) 00084 00085 #define CSMASK_MouseDoubleClick (1 << csevMouseDoubleClick) 00086 00087 #define CSMASK_JoystickMove (1 << csevJoystickMove) 00088 00089 #define CSMASK_JoystickDown (1 << csevJoystickDown) 00090 00091 #define CSMASK_JoystickUp (1 << csevJoystickUp) 00092 00093 #define CSMASK_Command (1 << csevCommand) 00094 00095 #define CSMASK_Broadcast (1 << csevBroadcast) 00096 00097 #define CSMASK_Network (1 << csevNetwork) 00098 00100 #define CSMASK_Keyboard \ 00101 (CSMASK_KeyDown | CSMASK_KeyUp) 00102 00103 #define CSMASK_Mouse \ 00104 (CSMASK_MouseMove | CSMASK_MouseDown | CSMASK_MouseUp | CSMASK_MouseClick | \ 00105 CSMASK_MouseDoubleClick) 00106 00107 #define CSMASK_Joystick \ 00108 (CSMASK_JoystickMove | CSMASK_JoystickDown | CSMASK_JoystickUp) 00109 00110 #define CSMASK_Input \ 00111 (CSMASK_Keyboard | CSMASK_Mouse | CSMASK_Joystick) 00112 00113 // Some handy macros 00115 #define CS_IS_KEYBOARD_EVENT(e) ((1 << (e).Type) & CSMASK_Keyboard) 00117 #define CS_IS_MOUSE_EVENT(e) ((1 << (e).Type) & CSMASK_Mouse) 00119 #define CS_IS_JOYSTICK_EVENT(e) ((1 << (e).Type) & CSMASK_Joystick) 00121 #define CS_IS_INPUT_EVENT(e) ((1 << (e).Type) & CSMASK_Input) 00123 #define CS_IS_NETWORK_EVENT(e) ((1 << (e).Type) & CSMASK_Network) 00124 00125 /* 00126 * Event flags masks. 00127 * Every event has a `flags' field which describes miscelaneous 00128 * aspects of the event. The following constants describes every 00129 * used bit of the `flags' field. 00130 */ 00136 #define CSEF_BROADCAST 0x00000001 00137 00138 /* 00139 * Modifier key masks. 00140 * Every input event (keyboard, mouse and joystick) contains a Modifiers 00141 * field which is a bitfield consisting of any combination of the masks 00142 * below. Having one in one of the bits means that the corresponding 00143 * modifier was pressed at the time when event happened. 00144 */ 00146 #define CSMASK_SHIFT 0x00000001 00147 00148 #define CSMASK_CTRL 0x00000002 00149 00150 #define CSMASK_ALT 0x00000004 00151 00152 #define CSMASK_ALLSHIFTS (CSMASK_SHIFT | CSMASK_CTRL | CSMASK_ALT) 00153 00154 #define CSMASK_FIRST 0x80000000 00155 00156 /* 00157 * Control key codes. 00158 * Not every existing key on any existing platform is supported by 00159 * Crystal Space. Instead, we tried to list here all the keys that 00160 * are common among all platforms on which Crystal Space runs. 00161 */ 00163 #define CSKEY_ESC 27 00164 00165 #define CSKEY_ENTER '\n' 00166 00167 #define CSKEY_TAB '\t' 00168 00169 #define CSKEY_BACKSPACE '\b' 00170 00171 #define CSKEY_SPACE ' ' 00172 00173 #define CSKEY_UP 1000 00174 00175 #define CSKEY_DOWN 1001 00176 00177 #define CSKEY_LEFT 1002 00178 00179 #define CSKEY_RIGHT 1003 00180 00181 #define CSKEY_PGUP 1004 00182 00183 #define CSKEY_PGDN 1005 00184 00185 #define CSKEY_HOME 1006 00186 00187 #define CSKEY_END 1007 00188 00189 #define CSKEY_INS 1008 00190 00191 #define CSKEY_DEL 1009 00192 00193 #define CSKEY_CTRL 1010 00194 00195 #define CSKEY_ALT 1011 00196 00197 #define CSKEY_SHIFT 1012 00198 00199 #define CSKEY_F1 1013 00200 00201 #define CSKEY_F2 1014 00202 00203 #define CSKEY_F3 1015 00204 00205 #define CSKEY_F4 1016 00206 00207 #define CSKEY_F5 1017 00208 00209 #define CSKEY_F6 1018 00210 00211 #define CSKEY_F7 1019 00212 00213 #define CSKEY_F8 1020 00214 00215 #define CSKEY_F9 1021 00216 00217 #define CSKEY_F10 1022 00218 00219 #define CSKEY_F11 1023 00220 00221 #define CSKEY_F12 1024 00222 00223 #define CSKEY_CENTER 1025 00224 00225 #define CSKEY_PADPLUS 1026 00226 00227 #define CSKEY_PADMINUS 1027 00228 00229 #define CSKEY_PADMULT 1028 00230 00231 #define CSKEY_PADDIV 1029 00232 00233 // First and last control key code 00234 #define CSKEY_FIRST 1000 00235 #define CSKEY_LAST 1029 00236 00246 00247 #define CSEVTYPE_Keyboard 0x00000001 00248 00249 #define CSEVTYPE_Mouse 0x00000002 00250 00251 #define CSEVTYPE_Joystick 0x00000004 00252 00271 enum 00272 { 00277 cscmdNothing = 0, 00278 00287 cscmdQuit, 00288 00300 cscmdFocusChanged, 00301 00306 cscmdSystemOpen, 00307 00312 cscmdSystemClose, 00313 00321 cscmdContextResize, 00322 00332 cscmdContextClose, 00333 00344 cscmdCommandLineHelp, 00345 00353 cscmdPaletteChanged, 00354 00359 cscmdPreProcess, 00360 00364 cscmdProcess, 00365 00370 cscmdPostProcess, 00371 00376 cscmdFinalProcess, 00377 00382 cscmdCanvasHidden, 00383 00388 cscmdCanvasExposed 00389 }; 00390 00391 #endif // __IUTIL_EVDEFS_H__ Generated for Crystal Space by doxygen 1.2.5 written by Dimitri van Heesch, ©1997-2000 |