Google

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   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