1 module gfx.window.win32.keymap; 2 3 version (Windows): 4 5 import gfx.window.keys; 6 import core.sys.windows.windows; 7 8 9 static KeySym getKeysym(in WPARAM vkey) 10 { 11 assert(cast(ubyte)vkey == vkey); 12 const sym = keysymTable[vkey]; 13 return (sym == KeySym.none) ? cast(KeySym)vkey : sym; 14 } 15 16 static KeyCode getKeycode(in ubyte scancode) 17 { 18 return keycodeTable[scancode]; 19 } 20 21 22 private 23 { 24 25 immutable KeySym[256] keysymTable; 26 immutable KeyCode[256] keycodeTable; 27 28 shared static this() 29 { 30 31 keycodeTable = [ 32 // 0x00 0 33 KeyCode.unknown, 34 KeyCode.escape, 35 KeyCode.d1, 36 KeyCode.d2, 37 KeyCode.d3, 38 KeyCode.d4, 39 KeyCode.d5, 40 KeyCode.d6, 41 KeyCode.d7, 42 KeyCode.d8, 43 KeyCode.d9, 44 KeyCode.d0, 45 KeyCode.minus, 46 KeyCode.equals, 47 KeyCode.backspace, 48 KeyCode.tab, 49 // 0x10 16 50 KeyCode.q, 51 KeyCode.w, 52 KeyCode.e, 53 KeyCode.r, 54 KeyCode.t, 55 KeyCode.y, 56 KeyCode.u, 57 KeyCode.i, 58 KeyCode.o, 59 KeyCode.p, 60 KeyCode.leftBracket, 61 KeyCode.rightBracket, 62 KeyCode.enter, 63 KeyCode.leftCtrl, 64 KeyCode.a, 65 KeyCode.s, 66 // 0x20 32 67 KeyCode.d, 68 KeyCode.f, 69 KeyCode.g, 70 KeyCode.h, 71 KeyCode.j, 72 KeyCode.k, 73 KeyCode.l, 74 KeyCode.semicolon, 75 KeyCode.quote, 76 KeyCode.grave, 77 KeyCode.leftShift, 78 KeyCode.uK_Hash, 79 KeyCode.z, 80 KeyCode.x, 81 KeyCode.c, 82 KeyCode.v, 83 // 0x30 48 84 KeyCode.b, 85 KeyCode.n, 86 KeyCode.m, 87 KeyCode.comma, 88 KeyCode.period, 89 KeyCode.slash, 90 KeyCode.rightShift, 91 KeyCode.printScreen, 92 KeyCode.leftAlt, 93 KeyCode.space, 94 KeyCode.capsLock, 95 KeyCode.f1, 96 KeyCode.f2, 97 KeyCode.f3, 98 KeyCode.f4, 99 KeyCode.f5, 100 // 0x40 64 101 KeyCode.f6, 102 KeyCode.f7, 103 KeyCode.f8, 104 KeyCode.f9, 105 KeyCode.f10, 106 KeyCode.kp_NumLock, 107 KeyCode.scrollLock, 108 KeyCode.home, 109 KeyCode.up, 110 KeyCode.pageUp, 111 KeyCode.kp_Subtract, 112 KeyCode.left, 113 KeyCode.kp_5, 114 KeyCode.right, 115 KeyCode.kp_Add, 116 KeyCode.end, 117 // 0x50 80 118 KeyCode.down, 119 KeyCode.pageDown, 120 KeyCode.insert, 121 KeyCode.delete_, 122 KeyCode.unknown, 123 KeyCode.unknown, 124 KeyCode.kp_Add, 125 KeyCode.f11, 126 KeyCode.f12, 127 KeyCode.unknown, 128 KeyCode.unknown, 129 KeyCode.unknown, 130 KeyCode.unknown, 131 KeyCode.unknown, 132 KeyCode.unknown, 133 KeyCode.unknown, 134 // 0x60 96 135 KeyCode.unknown, 136 KeyCode.unknown, 137 KeyCode.unknown, 138 KeyCode.unknown, 139 KeyCode.unknown, 140 KeyCode.unknown, 141 KeyCode.unknown, 142 KeyCode.unknown, 143 KeyCode.unknown, 144 KeyCode.unknown, 145 KeyCode.unknown, 146 KeyCode.unknown, 147 KeyCode.unknown, 148 KeyCode.unknown, // line feed 149 KeyCode.unknown, 150 KeyCode.unknown, 151 // 0x70 112 152 KeyCode.unknown, 153 KeyCode.unknown, 154 KeyCode.unknown, 155 KeyCode.unknown, 156 KeyCode.unknown, 157 KeyCode.unknown, 158 KeyCode.unknown, 159 KeyCode.unknown, 160 KeyCode.unknown, 161 KeyCode.unknown, 162 KeyCode.unknown, 163 KeyCode.unknown, 164 KeyCode.unknown, 165 KeyCode.unknown, 166 KeyCode.unknown, 167 KeyCode.unknown, 168 // 0x80 128 169 KeyCode.unknown, 170 KeyCode.unknown, 171 KeyCode.unknown, 172 KeyCode.unknown, 173 KeyCode.unknown, 174 KeyCode.unknown, 175 KeyCode.unknown, 176 KeyCode.unknown, 177 KeyCode.unknown, 178 KeyCode.unknown, 179 KeyCode.unknown, 180 KeyCode.unknown, 181 KeyCode.unknown, 182 KeyCode.unknown, 183 KeyCode.unknown, 184 KeyCode.unknown, 185 // 0x90 144 186 KeyCode.unknown, 187 KeyCode.unknown, 188 KeyCode.unknown, 189 KeyCode.unknown, 190 KeyCode.unknown, 191 KeyCode.unknown, 192 KeyCode.unknown, 193 KeyCode.unknown, 194 KeyCode.unknown, 195 KeyCode.unknown, 196 KeyCode.unknown, 197 KeyCode.unknown, 198 KeyCode.unknown, 199 KeyCode.unknown, 200 KeyCode.unknown, 201 KeyCode.unknown, 202 // 0xA0 160 203 KeyCode.unknown, 204 KeyCode.unknown, 205 KeyCode.unknown, 206 KeyCode.unknown, 207 KeyCode.unknown, 208 KeyCode.unknown, 209 KeyCode.unknown, 210 KeyCode.unknown, 211 KeyCode.unknown, 212 KeyCode.unknown, 213 KeyCode.unknown, 214 KeyCode.unknown, 215 KeyCode.unknown, 216 KeyCode.unknown, 217 KeyCode.unknown, 218 KeyCode.unknown, 219 // 0xB0 176 220 KeyCode.unknown, 221 KeyCode.unknown, 222 KeyCode.unknown, 223 KeyCode.unknown, 224 KeyCode.unknown, 225 KeyCode.unknown, 226 KeyCode.unknown, 227 KeyCode.unknown, 228 KeyCode.unknown, 229 KeyCode.unknown, 230 KeyCode.unknown, 231 KeyCode.unknown, 232 KeyCode.unknown, 233 KeyCode.unknown, 234 KeyCode.unknown, 235 KeyCode.unknown, 236 // 0xC0 192 237 KeyCode.unknown, 238 KeyCode.unknown, 239 KeyCode.unknown, 240 KeyCode.unknown, 241 KeyCode.unknown, 242 KeyCode.unknown, 243 KeyCode.unknown, 244 KeyCode.unknown, 245 KeyCode.unknown, 246 KeyCode.unknown, 247 KeyCode.unknown, 248 KeyCode.unknown, 249 KeyCode.unknown, 250 KeyCode.unknown, 251 KeyCode.unknown, 252 KeyCode.unknown, 253 // 0xD0 208 254 KeyCode.unknown, 255 KeyCode.unknown, 256 KeyCode.unknown, 257 KeyCode.unknown, 258 KeyCode.unknown, 259 KeyCode.unknown, 260 KeyCode.unknown, 261 KeyCode.unknown, 262 KeyCode.unknown, 263 KeyCode.unknown, 264 KeyCode.unknown, 265 KeyCode.unknown, 266 KeyCode.unknown, 267 KeyCode.unknown, 268 KeyCode.unknown, 269 KeyCode.unknown, 270 // 0xE0 224 271 KeyCode.unknown, 272 KeyCode.unknown, 273 KeyCode.unknown, 274 KeyCode.unknown, 275 KeyCode.unknown, 276 KeyCode.unknown, 277 KeyCode.unknown, 278 KeyCode.unknown, 279 KeyCode.unknown, 280 KeyCode.unknown, 281 KeyCode.unknown, 282 KeyCode.unknown, 283 KeyCode.unknown, 284 KeyCode.unknown, 285 KeyCode.unknown, 286 KeyCode.unknown, 287 // 0xF0 240 288 KeyCode.unknown, 289 KeyCode.unknown, 290 KeyCode.unknown, 291 KeyCode.unknown, 292 KeyCode.unknown, 293 KeyCode.unknown, 294 KeyCode.unknown, 295 KeyCode.unknown, 296 KeyCode.unknown, 297 KeyCode.unknown, 298 KeyCode.unknown, 299 KeyCode.unknown, 300 KeyCode.unknown, 301 KeyCode.unknown, 302 KeyCode.unknown, 303 KeyCode.unknown 304 ]; 305 306 // a little help from Qt for that one 307 keysymTable = [ 308 // Dec | Hex | Windows Virtual key 309 KeySym.unknown, // 0 0x00 310 KeySym.unknown, // 1 0x01 VK_LBUTTON | Left mouse button 311 KeySym.unknown, // 2 0x02 VK_RBUTTON | Right mouse button 312 KeySym.cancel, // 3 0x03 VK_CANCEL | Control-Break processing 313 KeySym.unknown, // 4 0x04 VK_MBUTTON | Middle mouse button 314 KeySym.unknown, // 5 0x05 VK_XBUTTON1 | X1 mouse button 315 KeySym.unknown, // 6 0x06 VK_XBUTTON2 | X2 mouse button 316 KeySym.unknown, // 7 0x07 -- unassigned -- 317 KeySym.backspace, // 8 0x08 VK_BACK | BackSpace key 318 KeySym.tab, // 9 0x09 VK_TAB | Tab key 319 KeySym.unknown, // 10 0x0A -- reserved -- 320 KeySym.unknown, // 11 0x0B -- reserved -- 321 KeySym.clear, // 12 0x0C VK_CLEAR | Clear key 322 KeySym.return_, // 13 0x0D VK_RETURN | Enter key 323 KeySym.unknown, // 14 0x0E -- unassigned -- 324 KeySym.unknown, // 15 0x0F -- unassigned -- 325 KeySym.shift, // 16 0x10 VK_SHIFT | Shift key 326 KeySym.ctrl, // 17 0x11 VK_CONTROL | Ctrl key 327 KeySym.alt, // 18 0x12 VK_MENU | Alt key 328 KeySym.pause, // 19 0x13 VK_PAUSE | Pause key 329 KeySym.capsLock, // 20 0x14 VK_CAPITAL | Caps-Lock 330 KeySym.unknown, // 21 0x15 VK_KANA / VK_HANGUL | IME Kana or Hangul mode 331 KeySym.unknown, // 22 0x16 -- unassigned -- 332 KeySym.junja, // 23 0x17 VK_JUNJA | IME Junja mode 333 KeySym.final_, // 24 0x18 VK_FINAL | IME final mode 334 KeySym.hanja, // 25 0x19 VK_HANJA / VK_KANJI | IME Hanja or Kanji mode 335 KeySym.unknown, // 26 0x1A -- unassigned -- 336 KeySym.escape, // 27 0x1B VK_ESCAPE | Esc key 337 KeySym.unknown, // 28 0x1C VK_CONVERT | IME convert 338 KeySym.unknown, // 29 0x1D VK_NONCONVERT | IME non-convert 339 KeySym.unknown, // 30 0x1E VK_ACCEPT | IME accept 340 KeySym.modeSwitch, // 31 0x1F VK_MODECHANGE | IME mode change request 341 KeySym.space, // 32 0x20 VK_SPACE | Spacebar 342 KeySym.pageUp, // 33 0x21 VK_PRIOR | Page Up key 343 KeySym.pageDown, // 34 0x22 VK_NEXT | Page Down key 344 KeySym.end, // 35 0x23 VK_END | End key 345 KeySym.home, // 36 0x24 VK_HOME | Home key 346 KeySym.left, // 37 0x25 VK_LEFT | Left arrow key 347 KeySym.up, // 38 0x26 VK_UP | Up arrow key 348 KeySym.right, // 39 0x27 VK_RIGHT | Right arrow key 349 KeySym.down, // 40 0x28 VK_DOWN | Down arrow key 350 KeySym.select, // 41 0x29 VK_SELECT | Select key 351 KeySym.printer, // 42 0x2A VK_PRINT | Print key 352 KeySym.execute, // 43 0x2B VK_EXECUTE | Execute key 353 KeySym.print, // 44 0x2C VK_SNAPSHOT | Print Screen key 354 KeySym.insert, // 45 0x2D VK_INSERT | Ins key 355 KeySym.delete_, // 46 0x2E VK_DELETE | Del key 356 KeySym.help, // 47 0x2F VK_HELP | Help key 357 KeySym.none, // 48 0x30 (VK_0) | 0 key 358 KeySym.none, // 49 0x31 (VK_1) | 1 key 359 KeySym.none, // 50 0x32 (VK_2) | 2 key 360 KeySym.none, // 51 0x33 (VK_3) | 3 key 361 KeySym.none, // 52 0x34 (VK_4) | 4 key 362 KeySym.none, // 53 0x35 (VK_5) | 5 key 363 KeySym.none, // 54 0x36 (VK_6) | 6 key 364 KeySym.none, // 55 0x37 (VK_7) | 7 key 365 KeySym.none, // 56 0x38 (VK_8) | 8 key 366 KeySym.none, // 57 0x39 (VK_9) | 9 key 367 KeySym.unknown, // 58 0x3A -- unassigned -- 368 KeySym.unknown, // 59 0x3B -- unassigned -- 369 KeySym.unknown, // 60 0x3C -- unassigned -- 370 KeySym.unknown, // 61 0x3D -- unassigned -- 371 KeySym.unknown, // 62 0x3E -- unassigned -- 372 KeySym.unknown, // 63 0x3F -- unassigned -- 373 KeySym.unknown, // 64 0x40 -- unassigned -- 374 KeySym.none, // 65 0x41 (VK_A) | A key 375 KeySym.none, // 66 0x42 (VK_B) | B key 376 KeySym.none, // 67 0x43 (VK_C) | C key 377 KeySym.none, // 68 0x44 (VK_D) | D key 378 KeySym.none, // 69 0x45 (VK_E) | E key 379 KeySym.none, // 70 0x46 (VK_F) | F key 380 KeySym.none, // 71 0x47 (VK_G) | G key 381 KeySym.none, // 72 0x48 (VK_H) | H key 382 KeySym.none, // 73 0x49 (VK_I) | I key 383 KeySym.none, // 74 0x4A (VK_J) | J key 384 KeySym.none, // 75 0x4B (VK_K) | K key 385 KeySym.none, // 76 0x4C (VK_L) | L key 386 KeySym.none, // 77 0x4D (VK_M) | M key 387 KeySym.none, // 78 0x4E (VK_N) | N key 388 KeySym.none, // 79 0x4F (VK_O) | O key 389 KeySym.none, // 80 0x50 (VK_P) | P key 390 KeySym.none, // 81 0x51 (VK_Q) | Q key 391 KeySym.none, // 82 0x52 (VK_R) | R key 392 KeySym.none, // 83 0x53 (VK_S) | S key 393 KeySym.none, // 84 0x54 (VK_T) | T key 394 KeySym.none, // 85 0x55 (VK_U) | U key 395 KeySym.none, // 86 0x56 (VK_V) | V key 396 KeySym.none, // 87 0x57 (VK_W) | W key 397 KeySym.none, // 88 0x58 (VK_X) | X key 398 KeySym.none, // 89 0x59 (VK_Y) | Y key 399 KeySym.none, // 90 0x5A (VK_Z) | Z key 400 KeySym.leftSuper, // 91 0x5B VK_LWIN | Left Windows - MS Natural kbd 401 KeySym.rightSuper, // 92 0x5C VK_RWIN | Right Windows - MS Natural kbd 402 KeySym.menu, // 93 0x5D VK_APPS | Application key-MS Natural kbd 403 KeySym.unknown, // 94 0x5E -- reserved -- 404 KeySym.sleep, // 95 0x5F VK_SLEEP 405 KeySym.kp_0, // 96 0x60 VK_NUMPAD0 | Numeric keypad 0 key 406 KeySym.kp_1, // 97 0x61 VK_NUMPAD1 | Numeric keypad 1 key 407 KeySym.kp_2, // 98 0x62 VK_NUMPAD2 | Numeric keypad 2 key 408 KeySym.kp_3, // 99 0x63 VK_NUMPAD3 | Numeric keypad 3 key 409 KeySym.kp_4, // 100 0x64 VK_NUMPAD4 | Numeric keypad 4 key 410 KeySym.kp_5, // 101 0x65 VK_NUMPAD5 | Numeric keypad 5 key 411 KeySym.kp_6, // 102 0x66 VK_NUMPAD6 | Numeric keypad 6 key 412 KeySym.kp_7, // 103 0x67 VK_NUMPAD7 | Numeric keypad 7 key 413 KeySym.kp_8, // 104 0x68 VK_NUMPAD8 | Numeric keypad 8 key 414 KeySym.kp_9, // 105 0x69 VK_NUMPAD9 | Numeric keypad 9 key 415 KeySym.kp_Multiply, // 106 0x6A VK_MULTIPLY | Multiply key 416 KeySym.kp_Add, // 107 0x6B VK_ADD | Add key 417 KeySym.kp_Separator, // 108 0x6C VK_SEPARATOR | Separator key 418 KeySym.kp_Subtract, // 109 0x6D VK_SUBTRACT | Subtract key 419 KeySym.kp_Decimal, // 110 0x6E VK_DECIMAL | Decimal key 420 KeySym.kp_Divide, // 111 0x6F VK_DIVIDE | Divide key 421 KeySym.f1, // 112 0x70 VK_F1 | F1 key 422 KeySym.f2, // 113 0x71 VK_F2 | F2 key 423 KeySym.f3, // 114 0x72 VK_F3 | F3 key 424 KeySym.f4, // 115 0x73 VK_F4 | F4 key 425 KeySym.f5, // 116 0x74 VK_F5 | F5 key 426 KeySym.f6, // 117 0x75 VK_F6 | F6 key 427 KeySym.f7, // 118 0x76 VK_F7 | F7 key 428 KeySym.f8, // 119 0x77 VK_F8 | F8 key 429 KeySym.f9, // 120 0x78 VK_F9 | F9 key 430 KeySym.f10, // 121 0x79 VK_F10 | F10 key 431 KeySym.f11, // 122 0x7A VK_F11 | F11 key 432 KeySym.f12, // 123 0x7B VK_F12 | F12 key 433 KeySym.f13, // 124 0x7C VK_F13 | F13 key 434 KeySym.f14, // 125 0x7D VK_F14 | F14 key 435 KeySym.f15, // 126 0x7E VK_F15 | F15 key 436 KeySym.f16, // 127 0x7F VK_F16 | F16 key 437 KeySym.f17, // 128 0x80 VK_F17 | F17 key 438 KeySym.f18, // 129 0x81 VK_F18 | F18 key 439 KeySym.f19, // 130 0x82 VK_F19 | F19 key 440 KeySym.f20, // 131 0x83 VK_F20 | F20 key 441 KeySym.f21, // 132 0x84 VK_F21 | F21 key 442 KeySym.f22, // 133 0x85 VK_F22 | F22 key 443 KeySym.f23, // 134 0x86 VK_F23 | F23 key 444 KeySym.f24, // 135 0x87 VK_F24 | F24 key 445 KeySym.unknown, // 136 0x88 -- unassigned -- 446 KeySym.unknown, // 137 0x89 -- unassigned -- 447 KeySym.unknown, // 138 0x8A -- unassigned -- 448 KeySym.unknown, // 139 0x8B -- unassigned -- 449 KeySym.unknown, // 140 0x8C -- unassigned -- 450 KeySym.unknown, // 141 0x8D -- unassigned -- 451 KeySym.unknown, // 142 0x8E -- unassigned -- 452 KeySym.unknown, // 143 0x8F -- unassigned -- 453 KeySym.numLock, // 144 0x90 VK_NUMLOCK | Num Lock key 454 KeySym.scrollLock, // 145 0x91 VK_SCROLL | Scroll Lock key 455 // Fujitsu/OASYS kbd -------------------- 456 KeySym.jisho, // 146 0x92 VK_OEM_FJ_JISHO | 'Dictionary' key / 457 // VK_OEM_NEC_EQUAL = key on numpad on NEC PC-9800 kbd 458 KeySym.masshou, // 147 0x93 VK_OEM_FJ_MASSHOU | 'Unregister word' key 459 KeySym.touroku, // 148 0x94 VK_OEM_FJ_TOUROKU | 'Register word' key 460 KeySym.oyayubiLeft, // 149 0x95 VK_OEM_FJ_LOYA | 'Left OYAYUBI' key 461 KeySym.oyayubiRight, // 150 0x96 VK_OEM_FJ_ROYA | 'Right OYAYUBI' key 462 KeySym.unknown, // 151 0x97 -- unassigned -- 463 KeySym.unknown, // 152 0x98 -- unassigned -- 464 KeySym.unknown, // 153 0x99 -- unassigned -- 465 KeySym.unknown, // 154 0x9A -- unassigned -- 466 KeySym.unknown, // 155 0x9B -- unassigned -- 467 KeySym.unknown, // 156 0x9C -- unassigned -- 468 KeySym.unknown, // 157 0x9D -- unassigned -- 469 KeySym.unknown, // 158 0x9E -- unassigned -- 470 KeySym.unknown, // 159 0x9F -- unassigned -- 471 KeySym.leftShift, // 160 0xA0 VK_LSHIFT | Left Shift key 472 KeySym.rightShift, // 161 0xA1 VK_RSHIFT | Right Shift key 473 KeySym.leftCtrl, // 162 0xA2 VK_LCONTROL | Left Ctrl key 474 KeySym.rightCtrl, // 163 0xA3 VK_RCONTROL | Right Ctrl key 475 KeySym.leftAlt, // 164 0xA4 VK_LMENU | Left Menu key 476 KeySym.rightAlt, // 165 0xA5 VK_RMENU | Right Menu key 477 KeySym.browserBack, // 166 0xA6 VK_BROWSER_BACK | Browser Back key 478 KeySym.browserForward, // 167 0xA7 VK_BROWSER_FORWARD | Browser Forward key 479 KeySym.browserRefresh, // 168 0xA8 VK_BROWSER_REFRESH | Browser Refresh key 480 KeySym.browserStop, // 169 0xA9 VK_BROWSER_STOP | Browser Stop key 481 KeySym.browserSearch, // 170 0xAA VK_BROWSER_SEARCH | Browser Search key 482 KeySym.browserFavorites, // 171 0xAB VK_BROWSER_FAVORITES| Browser Favorites key 483 KeySym.browserHome, // 172 0xAC VK_BROWSER_HOME | Browser Start and Home key 484 KeySym.volumeMute, // 173 0xAD VK_VOLUME_MUTE | Volume Mute key 485 KeySym.volumeDown, // 174 0xAE VK_VOLUME_DOWN | Volume Down key 486 KeySym.volumeUp, // 175 0xAF VK_VOLUME_UP | Volume Up key 487 KeySym.mediaNext, // 176 0xB0 VK_MEDIA_NEXT_TRACK | Next Track key 488 KeySym.mediaPrevious, // 177 0xB1 VK_MEDIA_PREV_TRACK | Previous Track key 489 KeySym.mediaStop, // 178 0xB2 VK_MEDIA_STOP | Stop Media key 490 KeySym.mediaPlay, // 179 0xB3 VK_MEDIA_PLAY_PAUSE | Play/Pause Media key 491 KeySym.launchMail, // 180 0xB4 VK_LAUNCH_MAIL | Start Mail key 492 KeySym.launchMedia, // 181 0xB5 VK_LAUNCH_MEDIA_SELECT Select Media key 493 KeySym.launch0, // 182 0xB6 VK_LAUNCH_APP1 | Start Application 1 key 494 KeySym.launch1, // 183 0xB7 VK_LAUNCH_APP2 | Start Application 2 key 495 KeySym.unknown, // 184 0xB8 -- reserved -- 496 KeySym.unknown, // 185 0xB9 -- reserved -- 497 KeySym.semicolon, // 186 0xBA VK_OEM_1 | ';:' for US 498 KeySym.plus, // 187 0xBB VK_OEM_PLUS | '+' any country 499 KeySym.comma, // 188 0xBC VK_OEM_COMMA | ',' any country 500 KeySym.minus, // 189 0xBD VK_OEM_MINUS | '-' any country 501 KeySym.period, // 190 0xBE VK_OEM_PERIOD | '.' any country 502 KeySym.slash, // 191 0xBF VK_OEM_2 | '/?' for US 503 KeySym.asciiTilde, // 192 0xC0 VK_OEM_3 | '`~' for US 504 KeySym.unknown, // 193 0xC1 -- reserved -- 505 KeySym.unknown, // 194 0xC2 -- reserved -- 506 KeySym.unknown, // 195 0xC3 -- reserved -- 507 KeySym.unknown, // 196 0xC4 -- reserved -- 508 KeySym.unknown, // 197 0xC5 -- reserved -- 509 KeySym.unknown, // 198 0xC6 -- reserved -- 510 KeySym.unknown, // 199 0xC7 -- reserved -- 511 KeySym.unknown, // 200 0xC8 -- reserved -- 512 KeySym.unknown, // 201 0xC9 -- reserved -- 513 KeySym.unknown, // 202 0xCA -- reserved -- 514 KeySym.unknown, // 203 0xCB -- reserved -- 515 KeySym.unknown, // 204 0xCC -- reserved -- 516 KeySym.unknown, // 205 0xCD -- reserved -- 517 KeySym.unknown, // 206 0xCE -- reserved -- 518 KeySym.unknown, // 207 0xCF -- reserved -- 519 KeySym.unknown, // 208 0xD0 -- reserved -- 520 KeySym.unknown, // 209 0xD1 -- reserved -- 521 KeySym.unknown, // 210 0xD2 -- reserved -- 522 KeySym.unknown, // 211 0xD3 -- reserved -- 523 KeySym.unknown, // 212 0xD4 -- reserved -- 524 KeySym.unknown, // 213 0xD5 -- reserved -- 525 KeySym.unknown, // 214 0xD6 -- reserved -- 526 KeySym.unknown, // 215 0xD7 -- reserved -- 527 KeySym.unknown, // 216 0xD8 -- unassigned -- 528 KeySym.unknown, // 217 0xD9 -- unassigned -- 529 KeySym.unknown, // 218 0xDA -- unassigned -- 530 KeySym.bracketLeft, // 219 0xDB VK_OEM_4 | '[{' for US 531 KeySym.bar, // 220 0xDC VK_OEM_5 | '\|' for US 532 KeySym.bracketRight, // 221 0xDD VK_OEM_6 | ']}' for US 533 KeySym.quoteDbl, // 222 0xDE VK_OEM_7 | ''"' for US 534 KeySym.unknown, // 223 0xDF VK_OEM_8 535 KeySym.unknown, // 224 0xE0 -- reserved -- 536 KeySym.unknown, // 225 0xE1 VK_OEM_AX | 'AX' key on Japanese AX kbd 537 KeySym.unknown, // 226 0xE2 VK_OEM_102 | "<>" or "\|" on RT 102-key kbd 538 KeySym.unknown, // 227 0xE3 VK_ICO_HELP | Help key on ICO 539 KeySym.unknown, // 228 0xE4 VK_ICO_00 | 00 key on ICO 540 KeySym.unknown, // 229 0xE5 VK_PROCESSKEY | IME Process key 541 KeySym.unknown, // 230 0xE6 VK_ICO_CLEAR | 542 KeySym.unknown, // 231 0xE7 VK_PACKET | Unicode char as keystrokes 543 KeySym.unknown, // 232 0xE8 -- unassigned -- 544 // Nokia/Ericsson definitions --------------- 545 KeySym.unknown, // 233 0xE9 VK_OEM_RESET 546 KeySym.unknown, // 234 0xEA VK_OEM_JUMP 547 KeySym.unknown, // 235 0xEB VK_OEM_PA1 548 KeySym.unknown, // 236 0xEC VK_OEM_PA2 549 KeySym.unknown, // 237 0xED VK_OEM_PA3 550 KeySym.unknown, // 238 0xEE VK_OEM_WSCTRL 551 KeySym.unknown, // 239 0xEF VK_OEM_CUSEL 552 KeySym.unknown, // 240 0xF0 VK_OEM_ATTN 553 KeySym.unknown, // 241 0xF1 VK_OEM_FINISH 554 KeySym.unknown, // 242 0xF2 VK_OEM_COPY 555 KeySym.unknown, // 243 0xF3 VK_OEM_AUTO 556 KeySym.unknown, // 244 0xF4 VK_OEM_ENLW 557 KeySym.unknown, // 245 0xF5 VK_OEM_BACKTAB 558 KeySym.unknown, // 246 0xF6 VK_ATTN | Attn key 559 KeySym.unknown, // 247 0xF7 VK_CRSEL | CrSel key 560 KeySym.unknown, // 248 0xF8 VK_EXSEL | ExSel key 561 KeySym.unknown, // 249 0xF9 VK_EREOF | Erase EOF key 562 KeySym.play, // 250 0xFA VK_PLAY | Play key 563 KeySym.zoom, // 251 0xFB VK_ZOOM | Zoom key 564 KeySym.unknown, // 252 0xFC VK_NONAME | Reserved 565 KeySym.unknown, // 253 0xFD VK_PA1 | PA1 key 566 KeySym.clear, // 254 0xFE VK_OEM_CLEAR | Clear key 567 KeySym.unknown, 568 ]; 569 570 } 571 572 }