diff options
Diffstat (limited to 'source/key_public.h')
-rw-r--r-- | source/key_public.h | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/source/key_public.h b/source/key_public.h new file mode 100644 index 0000000..992f9b7 --- /dev/null +++ b/source/key_public.h @@ -0,0 +1,169 @@ +/* +Copyright (C) 1997-2001 Id Software, Inc. + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +// +// these are the key numbers that should be passed to Key_Event +// +#define K_BACKSPACE 8 +#define K_TAB 9 +#define K_ENTER 13 +#define K_PAUSE 19 +#define K_ESCAPE 27 +#define K_SPACE 32 + +// normal keys should be passed as lowercased ascii + +#define K_DEL 127 +#define K_UPARROW 128 +#define K_DOWNARROW 129 +#define K_LEFTARROW 130 +#define K_RIGHTARROW 131 + +#define K_ALT 132 +#define K_CTRL 133 +#define K_SHIFT 134 +#define K_F1 135 +#define K_F2 136 +#define K_F3 137 +#define K_F4 138 +#define K_F5 139 +#define K_F6 140 +#define K_F7 141 +#define K_F8 142 +#define K_F9 143 +#define K_F10 144 +#define K_F11 145 +#define K_F12 146 +#define K_INS 147 +#define K_PGDN 148 +#define K_PGUP 149 +#define K_HOME 150 +#define K_END 151 + +#define K_NUMLOCK 153 +#define K_CAPSLOCK 154 +#define K_SCROLLOCK 155 +#define K_LWINKEY 156 +#define K_RWINKEY 157 +#define K_MENU 158 + +#define K_KP_HOME 160 +#define K_KP_UPARROW 161 +#define K_KP_PGUP 162 +#define K_KP_LEFTARROW 163 +#define K_KP_5 164 +#define K_KP_RIGHTARROW 165 +#define K_KP_END 166 +#define K_KP_DOWNARROW 167 +#define K_KP_PGDN 168 +#define K_KP_ENTER 169 +#define K_KP_INS 170 +#define K_KP_DEL 171 +#define K_KP_SLASH 172 +#define K_KP_MINUS 173 +#define K_KP_PLUS 174 +#define K_KP_MULTIPLY 175 + + +// +// joystick buttons +// +#define K_JOY1 203 +#define K_JOY2 204 +#define K_JOY3 205 +#define K_JOY4 206 + +// +// aux keys are for multi-buttoned joysticks to generate so they can use +// the normal binding process +// +#define K_AUX1 207 +#define K_AUX2 208 +#define K_AUX3 209 +#define K_AUX4 210 +#define K_AUX5 211 +#define K_AUX6 212 +#define K_AUX7 213 +#define K_AUX8 214 +#define K_AUX9 215 +#define K_AUX10 216 +#define K_AUX11 217 +#define K_AUX12 218 +#define K_AUX13 219 +#define K_AUX14 220 +#define K_AUX15 221 +#define K_AUX16 222 +#define K_AUX17 223 +#define K_AUX18 224 +#define K_AUX19 225 +#define K_AUX20 226 +#define K_AUX21 227 +#define K_AUX22 228 +#define K_AUX23 229 +#define K_AUX24 230 +#define K_AUX25 231 +#define K_AUX26 232 +#define K_AUX27 233 +#define K_AUX28 234 +#define K_AUX29 235 +#define K_AUX30 236 +#define K_AUX31 237 +#define K_AUX32 238 + +#define K_MWHEELDOWN 239 +#define K_MWHEELUP 240 + +// +// mouse buttons generate virtual keys +// +#define K_MOUSE1 241 +#define K_MOUSE2 242 +#define K_MOUSE3 243 +#define K_MOUSE4 244 +#define K_MOUSE5 245 +#define K_MOUSE6 246 +#define K_MOUSE7 247 +#define K_MOUSE8 248 + +typedef enum keydest_e { + KEY_GAME = 0, + KEY_CONSOLE = ( 1 << 0 ), + KEY_MESSAGE = ( 1 << 1 ), + KEY_MENU = ( 1 << 2 ) +} keydest_t; + +typedef struct keyAPI_s { + qboolean (*GetOverstrikeMode)( void ); + void (*SetOverstrikeMode)( qboolean overstrike ); + keydest_t (*GetDest)( void ); + void (*SetDest)( keydest_t dest ); + + qboolean (*IsDown)( int key ); + qboolean (*AnyKeyDown)( void ); + void (*ClearStates)( void ); + + char *(*KeyNumToString)( int keynum ); + void (*SetBinding)( int keynum, const char *binding ); + char *(*GetBinding)( const char *binding ); + int (*EnumBindings)( int key, const char *binding ); +} keyAPI_t; + +extern keyAPI_t keys; + |