Main Page   Class Hierarchy   Compound List   File List   Compound Members  

evdefs.h

00001 /*
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 };
00050 
00051 /*
00052  * Event masks.<p>
00053  * The event masks can be used by plugins to tell an event queue, via
00054  * iEventQueue::RegisterListener, which kinds of events they want to receive at
00055  * their HandleEvent() entry.  If a plugin registers to receive CSMASK_Nothing
00056  * events it is always called once per frame, so that plugin can do some
00057  * per-frame processing.
00058  */
00066 #define CSMASK_Nothing          (1 << csevNothing)
00067 
00068 #define CSMASK_KeyDown          (1 << csevKeyDown)
00069 
00070 #define CSMASK_KeyUp            (1 << csevKeyUp)
00071 
00072 #define CSMASK_MouseMove        (1 << csevMouseMove)
00073 
00074 #define CSMASK_MouseDown        (1 << csevMouseDown)
00075 
00076 #define CSMASK_MouseUp          (1 << csevMouseUp)
00077 
00078 #define CSMASK_MouseClick       (1 << csevMouseClick)
00079 
00080 #define CSMASK_MouseDoubleClick (1 << csevMouseDoubleClick)
00081 
00082 #define CSMASK_JoystickMove     (1 << csevJoystickMove)
00083 
00084 #define CSMASK_JoystickDown     (1 << csevJoystickDown)
00085 
00086 #define CSMASK_JoystickUp       (1 << csevJoystickUp)
00087 
00088 #define CSMASK_Command          (1 << csevCommand)
00089 
00090 #define CSMASK_Broadcast        (1 << csevBroadcast)
00091 
00092 #define CSMASK_Network          (1 << csevNetwork)
00093 
00095 #define CSMASK_Keyboard \
00096   (CSMASK_KeyDown | CSMASK_KeyUp)
00097 
00098 #define CSMASK_Mouse \
00099   (CSMASK_MouseMove | CSMASK_MouseDown | CSMASK_MouseUp | CSMASK_MouseClick | \
00100    CSMASK_MouseDoubleClick)
00101 
00102 #define CSMASK_Joystick \
00103   (CSMASK_JoystickMove | CSMASK_JoystickDown | CSMASK_JoystickUp)
00104 
00105 #define CSMASK_Input \
00106   (CSMASK_Keyboard | CSMASK_Mouse | CSMASK_Joystick)
00107 
00108 // Some handy macros
00110 #define CS_IS_KEYBOARD_EVENT(e) ((1 << (e).Type) & CSMASK_Keyboard)
00112 #define CS_IS_MOUSE_EVENT(e)    ((1 << (e).Type) & CSMASK_Mouse)
00114 #define CS_IS_JOYSTICK_EVENT(e) ((1 << (e).Type) & CSMASK_Joystick)
00116 #define CS_IS_NETWORK_EVENT(e)  ((1 << (e).Type) & CSMASK_Network)
00117 
00118 /*
00119  * Event flags masks.
00120  * Every event has a `flags' field which describes miscelaneous
00121  * aspects of the event. The following constants describes every
00122  * used bit of the `flags' field.
00123  */
00129 #define CSEF_BROADCAST          0x00000001
00130 
00131 /*
00132  * Modifier key masks.
00133  * Every input event (keyboard, mouse and joystick) contains a Modifiers
00134  * field which is a bitfield consisting of any combination of the masks
00135  * below. Having one in one of the bits means that the corresponding
00136  * modifier was pressed at the time when event happened.
00137  */
00139 #define CSMASK_SHIFT            0x00000001
00140 
00141 #define CSMASK_CTRL             0x00000002
00142 
00143 #define CSMASK_ALT              0x00000004
00144 
00145 #define CSMASK_ALLSHIFTS        (CSMASK_SHIFT | CSMASK_CTRL | CSMASK_ALT)
00146 
00147 #define CSMASK_FIRST            0x80000000
00148 
00149 /*
00150  * Control key codes.
00151  * Not every existing key on any existing platform is supported by
00152  * Crystal Space. Instead, we tried to list here all the keys that
00153  * are common among all platforms on which Crystal Space runs.
00154  */
00156 #define CSKEY_ESC               27
00157 
00158 #define CSKEY_ENTER             '\n'
00159 
00160 #define CSKEY_TAB               '\t'
00161 
00162 #define CSKEY_BACKSPACE         '\b'
00163 
00164 #define CSKEY_SPACE             ' '
00165 
00166 #define CSKEY_UP                1000
00167 
00168 #define CSKEY_DOWN              1001
00169 
00170 #define CSKEY_LEFT              1002
00171 
00172 #define CSKEY_RIGHT             1003
00173 
00174 #define CSKEY_PGUP              1004
00175 
00176 #define CSKEY_PGDN              1005
00177 
00178 #define CSKEY_HOME              1006
00179 
00180 #define CSKEY_END               1007
00181 
00182 #define CSKEY_INS               1008
00183 
00184 #define CSKEY_DEL               1009
00185 
00186 #define CSKEY_CTRL              1010
00187 
00188 #define CSKEY_ALT               1011
00189 
00190 #define CSKEY_SHIFT             1012
00191 
00192 #define CSKEY_F1                1013
00193 
00194 #define CSKEY_F2                1014
00195 
00196 #define CSKEY_F3                1015
00197 
00198 #define CSKEY_F4                1016
00199 
00200 #define CSKEY_F5                1017
00201 
00202 #define CSKEY_F6                1018
00203 
00204 #define CSKEY_F7                1019
00205 
00206 #define CSKEY_F8                1020
00207 
00208 #define CSKEY_F9                1021
00209 
00210 #define CSKEY_F10               1022
00211 
00212 #define CSKEY_F11               1023
00213 
00214 #define CSKEY_F12               1024
00215 
00216 #define CSKEY_CENTER            1025
00217 
00218 #define CSKEY_PADPLUS           1026
00219 
00220 #define CSKEY_PADMINUS          1027
00221 
00222 #define CSKEY_PADMULT           1028
00223 
00224 #define CSKEY_PADDIV            1029
00225 
00226 // First and last control key code
00227 #define CSKEY_FIRST             1000
00228 #define CSKEY_LAST              1029
00229 
00239 
00240 #define CSEVTYPE_Keyboard       0x00000001
00241 
00242 #define CSEVTYPE_Mouse          0x00000002
00243 
00244 #define CSEVTYPE_Joystick       0x00000004
00245 
00264 enum
00265 {
00270   cscmdNothing = 0,
00271 
00280   cscmdQuit,
00281 
00293   cscmdFocusChanged,
00294 
00299   cscmdSystemOpen,
00300 
00305   cscmdSystemClose,
00306 
00314   cscmdContextResize,
00315 
00325   cscmdContextClose,
00326 
00337   cscmdCommandLineHelp,
00338 
00346   cscmdPaletteChanged,
00347 
00352   cscmdPreProcess,
00353 
00357   cscmdProcess,
00358 
00363   cscmdPostProcess,
00364 
00369   cscmdFinalProcess
00370 };
00371 
00372 #endif // __IUTIL_EVDEFS_H__

Generated for Crystal Space by doxygen 1.2.5 written by Dimitri van Heesch, ©1997-2000