1/* 2Copyright (C) 1996-1997 Id Software, Inc. 3 4This program is free software; you can redistribute it and/or 5modify it under the terms of the GNU General Public License 6as published by the Free Software Foundation; either version 2 7of the License, or (at your option) any later version. 8 9This program is distributed in the hope that it will be useful, 10but WITHOUT ANY WARRANTY; without even the implied warranty of 11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12 13See the GNU General Public License for more details. 14 15You should have received a copy of the GNU General Public License 16along with this program; if not, write to the Free Software 17Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 19*/ 20 21// 22// these are the key numbers that should be passed to Key_Event 23// 24#define K_TAB 9 25#define K_ENTER 13 26#define K_ESCAPE 27 27#define K_SPACE 32 28 29// normal keys should be passed as lowercased ascii 30 31#define K_BACKSPACE 127 32#define K_UPARROW 128 33#define K_DOWNARROW 129 34#define K_LEFTARROW 130 35#define K_RIGHTARROW 131 36 37#define K_ALT 132 38#define K_CTRL 133 39#define K_SHIFT 134 40#define K_F1 135 41#define K_F2 136 42#define K_F3 137 43#define K_F4 138 44#define K_F5 139 45#define K_F6 140 46#define K_F7 141 47#define K_F8 142 48#define K_F9 143 49#define K_F10 144 50#define K_F11 145 51#define K_F12 146 52#define K_INS 147 53#define K_DEL 148 54#define K_PGDN 149 55#define K_PGUP 150 56#define K_HOME 151 57#define K_END 152 58 59#define K_PAUSE 255 60 61// 62// mouse buttons generate virtual keys 63// 64#define K_MOUSE1 200 65#define K_MOUSE2 201 66#define K_MOUSE3 202 67 68// 69// joystick buttons 70// 71#define K_JOY1 203 72#define K_JOY2 204 73#define K_JOY3 205 74#define K_JOY4 206 75 76// 77// aux keys are for multi-buttoned joysticks to generate so they can use 78// the normal binding process 79// 80#define K_AUX1 207 81#define K_AUX2 208 82#define K_AUX3 209 83#define K_AUX4 210 84#define K_AUX5 211 85#define K_AUX6 212 86#define K_AUX7 213 87#define K_AUX8 214 88#define K_AUX9 215 89#define K_AUX10 216 90#define K_AUX11 217 91#define K_AUX12 218 92#define K_AUX13 219 93#define K_AUX14 220 94#define K_AUX15 221 95#define K_AUX16 222 96#define K_AUX17 223 97#define K_AUX18 224 98#define K_AUX19 225 99#define K_AUX20 226 100#define K_AUX21 227 101#define K_AUX22 228 102#define K_AUX23 229 103#define K_AUX24 230 104#define K_AUX25 231 105#define K_AUX26 232 106#define K_AUX27 233 107#define K_AUX28 234 108#define K_AUX29 235 109#define K_AUX30 236 110#define K_AUX31 237 111#define K_AUX32 238 112 113// JACK: Intellimouse(c) Mouse Wheel Support 114 115#define K_MWHEELUP 239 116#define K_MWHEELDOWN 240 117 118 119 120typedef enum {key_game, key_console, key_message, key_menu, keydest_t_max = 1 << 30} keydest_t; 121 122extern keydest_t key_dest; 123extern char *keybindings[256]; 124extern int key_repeats[256]; 125extern int key_count; // incremented every key event 126extern int key_lastpress; 127 128void Key_Event (int key, qboolean down); 129void Key_Init (void); 130void Key_WriteBindings (FILE *f); 131void Key_SetBinding (int keynum, const char *binding); 132void Key_ClearStates (void); 133 134