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 }