1 /* 2 =========================================================================== 3 Copyright (C) 1999 - 2005, Id Software, Inc. 4 Copyright (C) 2000 - 2013, Raven Software, Inc. 5 Copyright (C) 2001 - 2013, Activision, Inc. 6 Copyright (C) 2013 - 2015, OpenJK contributors 7 8 This file is part of the OpenJK source code. 9 10 OpenJK is free software; you can redistribute it and/or modify it 11 under the terms of the GNU General Public License version 2 as 12 published by the Free Software Foundation. 13 14 This program is distributed in the hope that it will be useful, 15 but WITHOUT ANY WARRANTY; without even the implied warranty of 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 GNU General Public License for more details. 18 19 You should have received a copy of the GNU General Public License 20 along with this program; if not, see <http://www.gnu.org/licenses/>. 21 =========================================================================== 22 */ 23 24 #pragma once 25 26 // these are the key numbers that should be passed to KeyEvent 27 28 typedef enum 29 { 30 A_NULL = 0, 31 A_SHIFT, 32 A_CTRL, 33 A_ALT, 34 A_CAPSLOCK, 35 A_NUMLOCK, 36 A_SCROLLLOCK, 37 A_PAUSE, 38 A_BACKSPACE, 39 A_TAB, 40 A_ENTER, 41 A_KP_PLUS, 42 A_KP_MINUS, 43 A_KP_ENTER, 44 A_KP_PERIOD, 45 A_PRINTSCREEN, 46 A_KP_0, 47 A_KP_1, 48 A_KP_2, 49 A_KP_3, 50 A_KP_4, 51 A_KP_5, 52 A_KP_6, 53 A_KP_7, 54 A_KP_8, 55 A_KP_9, 56 A_CONSOLE, 57 A_ESCAPE, 58 A_F1, 59 A_F2, 60 A_F3, 61 A_F4, 62 63 A_SPACE, 64 A_PLING, 65 A_DOUBLE_QUOTE, 66 A_HASH, 67 A_STRING, 68 A_PERCENT, 69 A_AND, 70 A_SINGLE_QUOTE, 71 A_OPEN_BRACKET, 72 A_CLOSE_BRACKET, 73 A_STAR, 74 A_PLUS, 75 A_COMMA, 76 A_MINUS, 77 A_PERIOD, 78 A_FORWARD_SLASH, 79 A_0, 80 A_1, 81 A_2, 82 A_3, 83 A_4, 84 A_5, 85 A_6, 86 A_7, 87 A_8, 88 A_9, 89 A_COLON, 90 A_SEMICOLON, 91 A_LESSTHAN, 92 A_EQUALS, 93 A_GREATERTHAN, 94 A_QUESTION, 95 96 A_AT, 97 A_CAP_A, 98 A_CAP_B, 99 A_CAP_C, 100 A_CAP_D, 101 A_CAP_E, 102 A_CAP_F, 103 A_CAP_G, 104 A_CAP_H, 105 A_CAP_I, 106 A_CAP_J, 107 A_CAP_K, 108 A_CAP_L, 109 A_CAP_M, 110 A_CAP_N, 111 A_CAP_O, 112 A_CAP_P, 113 A_CAP_Q, 114 A_CAP_R, 115 A_CAP_S, 116 A_CAP_T, 117 A_CAP_U, 118 A_CAP_V, 119 A_CAP_W, 120 A_CAP_X, 121 A_CAP_Y, 122 A_CAP_Z, 123 A_OPEN_SQUARE, 124 A_BACKSLASH, 125 A_CLOSE_SQUARE, 126 A_CARET, 127 A_UNDERSCORE, 128 129 A_LEFT_SINGLE_QUOTE, 130 A_LOW_A, 131 A_LOW_B, 132 A_LOW_C, 133 A_LOW_D, 134 A_LOW_E, 135 A_LOW_F, 136 A_LOW_G, 137 A_LOW_H, 138 A_LOW_I, 139 A_LOW_J, 140 A_LOW_K, 141 A_LOW_L, 142 A_LOW_M, 143 A_LOW_N, 144 A_LOW_O, 145 A_LOW_P, 146 A_LOW_Q, 147 A_LOW_R, 148 A_LOW_S, 149 A_LOW_T, 150 A_LOW_U, 151 A_LOW_V, 152 A_LOW_W, 153 A_LOW_X, 154 A_LOW_Y, 155 A_LOW_Z, 156 A_OPEN_BRACE, 157 A_BAR, 158 A_CLOSE_BRACE, 159 A_TILDE, 160 A_DELETE, 161 162 A_EURO, 163 A_SHIFT2, 164 A_CTRL2, 165 A_ALT2, 166 A_F5, 167 A_F6, 168 A_F7, 169 A_F8, 170 A_CIRCUMFLEX, 171 A_MWHEELUP, 172 A_CAP_SCARON, 173 A_MWHEELDOWN, 174 A_CAP_OE, 175 A_MOUSE1, 176 A_MOUSE2, 177 A_INSERT, 178 A_HOME, 179 A_PAGE_UP, 180 A_RIGHT_SINGLE_QUOTE, 181 A_LEFT_DOUBLE_QUOTE, 182 A_RIGHT_DOUBLE_QUOTE, 183 A_F9, 184 A_F10, 185 A_F11, 186 A_F12, 187 A_TRADEMARK, 188 A_LOW_SCARON, 189 A_SHIFT_ENTER, 190 A_LOW_OE, 191 A_END, 192 A_PAGE_DOWN, 193 A_CAP_YDIERESIS, 194 195 A_SHIFT_SPACE, 196 A_EXCLAMDOWN, 197 A_CENT, 198 A_POUND, 199 A_SHIFT_KP_ENTER, 200 A_YEN, 201 A_MOUSE3, 202 A_MOUSE4, 203 A_MOUSE5, 204 A_COPYRIGHT, 205 A_CURSOR_UP, 206 A_CURSOR_DOWN, 207 A_CURSOR_LEFT, 208 A_CURSOR_RIGHT, 209 A_REGISTERED, 210 A_UNDEFINED_7, 211 A_UNDEFINED_8, 212 A_UNDEFINED_9, 213 A_UNDEFINED_10, 214 A_UNDEFINED_11, 215 A_UNDEFINED_12, 216 A_UNDEFINED_13, 217 A_UNDEFINED_14, 218 A_UNDEFINED_15, 219 A_UNDEFINED_16, 220 A_UNDEFINED_17, 221 A_UNDEFINED_18, 222 A_UNDEFINED_19, 223 A_UNDEFINED_20, 224 A_UNDEFINED_21, 225 A_UNDEFINED_22, 226 A_QUESTION_DOWN, 227 228 A_CAP_AGRAVE, 229 A_CAP_AACUTE, 230 A_CAP_ACIRCUMFLEX, 231 A_CAP_ATILDE, 232 A_CAP_ADIERESIS, 233 A_CAP_ARING, 234 A_CAP_AE, 235 A_CAP_CCEDILLA, 236 A_CAP_EGRAVE, 237 A_CAP_EACUTE, 238 A_CAP_ECIRCUMFLEX, 239 A_CAP_EDIERESIS, 240 A_CAP_IGRAVE, 241 A_CAP_IACUTE, 242 A_CAP_ICIRCUMFLEX, 243 A_CAP_IDIERESIS, 244 A_CAP_ETH, 245 A_CAP_NTILDE, 246 A_CAP_OGRAVE, 247 A_CAP_OACUTE, 248 A_CAP_OCIRCUMFLEX, 249 A_CAP_OTILDE, 250 A_CAP_ODIERESIS, 251 A_MULTIPLY, 252 A_CAP_OSLASH, 253 A_CAP_UGRAVE, 254 A_CAP_UACUTE, 255 A_CAP_UCIRCUMFLEX, 256 A_CAP_UDIERESIS, 257 A_CAP_YACUTE, 258 A_CAP_THORN, 259 A_GERMANDBLS, 260 261 A_LOW_AGRAVE, 262 A_LOW_AACUTE, 263 A_LOW_ACIRCUMFLEX, 264 A_LOW_ATILDE, 265 A_LOW_ADIERESIS, 266 A_LOW_ARING, 267 A_LOW_AE, 268 A_LOW_CCEDILLA, 269 A_LOW_EGRAVE, 270 A_LOW_EACUTE, 271 A_LOW_ECIRCUMFLEX, 272 A_LOW_EDIERESIS, 273 A_LOW_IGRAVE, 274 A_LOW_IACUTE, 275 A_LOW_ICIRCUMFLEX, 276 A_LOW_IDIERESIS, 277 A_LOW_ETH, 278 A_LOW_NTILDE, 279 A_LOW_OGRAVE, 280 A_LOW_OACUTE, 281 A_LOW_OCIRCUMFLEX, 282 A_LOW_OTILDE, 283 A_LOW_ODIERESIS, 284 A_DIVIDE, 285 A_LOW_OSLASH, 286 A_LOW_UGRAVE, 287 A_LOW_UACUTE, 288 A_LOW_UCIRCUMFLEX, 289 A_LOW_UDIERESIS, 290 A_LOW_YACUTE, 291 A_LOW_THORN, 292 A_LOW_YDIERESIS, 293 294 A_JOY0, 295 A_JOY1, 296 A_JOY2, 297 A_JOY3, 298 A_JOY4, 299 A_JOY5, 300 A_JOY6, 301 A_JOY7, 302 A_JOY8, 303 A_JOY9, 304 A_JOY10, 305 A_JOY11, 306 A_JOY12, 307 A_JOY13, 308 A_JOY14, 309 A_JOY15, 310 A_JOY16, 311 A_JOY17, 312 A_JOY18, 313 A_JOY19, 314 A_JOY20, 315 A_JOY21, 316 A_JOY22, 317 A_JOY23, 318 A_JOY24, 319 A_JOY25, 320 A_JOY26, 321 A_JOY27, 322 A_JOY28, 323 A_JOY29, 324 A_JOY30, 325 A_JOY31, 326 327 A_AUX0, 328 A_AUX1, 329 A_AUX2, 330 A_AUX3, 331 A_AUX4, 332 A_AUX5, 333 A_AUX6, 334 A_AUX7, 335 A_AUX8, 336 A_AUX9, 337 A_AUX10, 338 A_AUX11, 339 A_AUX12, 340 A_AUX13, 341 A_AUX14, 342 A_AUX15, 343 A_AUX16, 344 A_AUX17, 345 A_AUX18, 346 A_AUX19, 347 A_AUX20, 348 A_AUX21, 349 A_AUX22, 350 A_AUX23, 351 A_AUX24, 352 A_AUX25, 353 A_AUX26, 354 A_AUX27, 355 A_AUX28, 356 A_AUX29, 357 A_AUX30, 358 A_AUX31, 359 360 MAX_KEYS 361 } fakeAscii_t; 362 363 364 // The menu code needs to get both key and char events, but 365 // to avoid duplicating the paths, the char events are just 366 // distinguished by or'ing in K_CHAR_FLAG (ugly) 367 #define K_CHAR_FLAG 1024 368