1 /* 2 * keys.h -- key definitions and keyboard public functions 3 * $Id: keys.h,v 1.13 2007-11-16 10:24:57 sezero Exp $ 4 * 5 * Copyright (C) 1996-1997 Id Software, Inc. 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 2 of the License, or (at 10 * your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, but 13 * WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15 * 16 * See the GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License along 19 * with this program; if not, write to the Free Software Foundation, Inc., 20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 */ 22 23 #ifndef __HX2_KEYS_H 24 #define __HX2_KEYS_H 25 26 // 27 // these are the key numbers that should be passed to Key_Event 28 // 29 #define K_TAB 9 30 #define K_ENTER 13 31 #define K_ESCAPE 27 32 #define K_SPACE 32 33 34 // normal keys should be passed as lowercased ascii 35 36 #define K_BACKSPACE 127 37 #define K_UPARROW 128 38 #define K_DOWNARROW 129 39 #define K_LEFTARROW 130 40 #define K_RIGHTARROW 131 41 42 #define K_ALT 132 43 #define K_CTRL 133 44 #define K_SHIFT 134 45 #define K_F1 135 46 #define K_F2 136 47 #define K_F3 137 48 #define K_F4 138 49 #define K_F5 139 50 #define K_F6 140 51 #define K_F7 141 52 #define K_F8 142 53 #define K_F9 143 54 #define K_F10 144 55 #define K_F11 145 56 #define K_F12 146 57 #define K_INS 147 58 #define K_DEL 148 59 #define K_PGDN 149 60 #define K_PGUP 150 61 #define K_HOME 151 62 #define K_END 152 63 64 #define K_KP_NUMLOCK 153 65 #define K_KP_SLASH 154 66 #define K_KP_STAR 155 67 #define K_KP_MINUS 156 68 #define K_KP_HOME 157 69 #define K_KP_UPARROW 158 70 #define K_KP_PGUP 159 71 #define K_KP_PLUS 160 72 #define K_KP_LEFTARROW 161 73 #define K_KP_5 162 74 #define K_KP_RIGHTARROW 163 75 #define K_KP_END 164 76 #define K_KP_DOWNARROW 165 77 #define K_KP_PGDN 166 78 #define K_KP_ENTER 167 79 #define K_KP_INS 168 80 #define K_KP_DEL 169 81 82 #define K_COMMAND 170 83 84 #define K_PAUSE 255 85 86 // 87 // mouse buttons generate virtual keys 88 // 89 #define K_MOUSE1 200 90 #define K_MOUSE2 201 /* right mouse button */ 91 #define K_MOUSE3 202 /* middle mouse button */ 92 #define K_MWHEELUP 203 /* wheel-up as a virtual button */ 93 #define K_MWHEELDOWN 204 /* wheel-down as a virtual button */ 94 #define K_MOUSE4 205 /* thumb buttons */ 95 #define K_MOUSE5 206 /* thumb buttons */ 96 97 // 98 // joystick buttons 99 // 100 #define K_JOY1 207 101 #define K_JOY2 208 102 #define K_JOY3 209 103 #define K_JOY4 210 104 // aux keys are for multi-buttoned joysticks to generate so they can use 105 // the normal binding process 106 // aux29-32: reserved for the HAT (POV) switch motion 107 #define K_AUX1 211 108 #define K_AUX2 212 109 #define K_AUX3 213 110 #define K_AUX4 214 111 #define K_AUX5 215 112 #define K_AUX6 216 113 #define K_AUX7 217 114 #define K_AUX8 218 115 #define K_AUX9 219 116 #define K_AUX10 220 117 #define K_AUX11 221 118 #define K_AUX12 222 119 #define K_AUX13 223 120 #define K_AUX14 224 121 #define K_AUX15 225 122 #define K_AUX16 226 123 #define K_AUX17 227 124 #define K_AUX18 228 125 #define K_AUX19 229 126 #define K_AUX20 230 127 #define K_AUX21 231 128 #define K_AUX22 232 129 #define K_AUX23 233 130 #define K_AUX24 234 131 #define K_AUX25 235 132 #define K_AUX26 236 133 #define K_AUX27 237 134 #define K_AUX28 238 135 #define K_AUX29 239 136 #define K_AUX30 240 137 #define K_AUX31 241 138 #define K_AUX32 242 139 140 141 #define MAXCMDLINE 256 142 143 #define key_game 0 144 #define key_console (1 << 0) 145 #define key_message (1 << 1) 146 #define key_menu (1 << 2) /* last valid keydest */ 147 148 #define key_bindbit (key_menu << 1) 149 #define key_menubind (key_menu | key_bindbit) 150 151 typedef int keydest_t; 152 153 extern char *keybindings[256]; 154 extern int key_count; /* incremented every key event */ 155 extern int key_lastpress; 156 157 extern char key_lines[32][MAXCMDLINE]; 158 extern int edit_line; 159 extern int key_linepos; 160 extern int key_insert; 161 162 extern qboolean chat_team; 163 164 void Key_Init (void); 165 void Key_ClearStates (void); 166 167 void Key_Event (int key, qboolean down); 168 169 qboolean Key_IsGameKey (void); 170 keydest_t Key_GetDest (void); 171 void Key_SetDest (keydest_t dest); 172 173 void Key_SetBinding (int keynum, const char *binding); 174 const char *Key_KeynumToString (int keynum); 175 void Key_WriteBindings (FILE *f); 176 177 void Key_EndChat (void); 178 const char *Key_GetChatBuffer (void); 179 int Key_GetChatMsgLen (void); 180 181 #endif /* __HX2_KEYS_H */ 182 183