1// Copyright 2014 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// DO NOT EDIT -- DO NOT EDIT -- DO NOT EDIT
6// This file is generated by dev/tools/gen_keycodes/bin/gen_keycodes.dart and
7// should not be edited directly.
8//
9// Edit the template dev/tools/gen_keycodes/data/keyboard_maps.tmpl instead.
10// See dev/tools/gen_keycodes/README.md for more information.
11
12import 'keyboard_key.g.dart';
13
14export 'keyboard_key.g.dart' show LogicalKeyboardKey, PhysicalKeyboardKey;
15
16/// Maps Android-specific key codes to the matching [LogicalKeyboardKey].
17const Map<int, LogicalKeyboardKey> kAndroidToLogicalKey = <int, LogicalKeyboardKey>{
18 3: LogicalKeyboardKey.goHome,
19 4: LogicalKeyboardKey.goBack,
20 5: LogicalKeyboardKey.call,
21 6: LogicalKeyboardKey.endCall,
22 7: LogicalKeyboardKey.digit0,
23 8: LogicalKeyboardKey.digit1,
24 9: LogicalKeyboardKey.digit2,
25 10: LogicalKeyboardKey.digit3,
26 11: LogicalKeyboardKey.digit4,
27 12: LogicalKeyboardKey.digit5,
28 13: LogicalKeyboardKey.digit6,
29 14: LogicalKeyboardKey.digit7,
30 15: LogicalKeyboardKey.digit8,
31 16: LogicalKeyboardKey.digit9,
32 17: LogicalKeyboardKey.asterisk,
33 18: LogicalKeyboardKey.numberSign,
34 19: LogicalKeyboardKey.arrowUp,
35 20: LogicalKeyboardKey.arrowDown,
36 21: LogicalKeyboardKey.arrowLeft,
37 22: LogicalKeyboardKey.arrowRight,
38 23: LogicalKeyboardKey.select,
39 24: LogicalKeyboardKey.audioVolumeUp,
40 25: LogicalKeyboardKey.audioVolumeDown,
41 26: LogicalKeyboardKey.power,
42 27: LogicalKeyboardKey.camera,
43 28: LogicalKeyboardKey.clear,
44 29: LogicalKeyboardKey.keyA,
45 30: LogicalKeyboardKey.keyB,
46 31: LogicalKeyboardKey.keyC,
47 32: LogicalKeyboardKey.keyD,
48 33: LogicalKeyboardKey.keyE,
49 34: LogicalKeyboardKey.keyF,
50 35: LogicalKeyboardKey.keyG,
51 36: LogicalKeyboardKey.keyH,
52 37: LogicalKeyboardKey.keyI,
53 38: LogicalKeyboardKey.keyJ,
54 39: LogicalKeyboardKey.keyK,
55 40: LogicalKeyboardKey.keyL,
56 41: LogicalKeyboardKey.keyM,
57 42: LogicalKeyboardKey.keyN,
58 43: LogicalKeyboardKey.keyO,
59 44: LogicalKeyboardKey.keyP,
60 45: LogicalKeyboardKey.keyQ,
61 46: LogicalKeyboardKey.keyR,
62 47: LogicalKeyboardKey.keyS,
63 48: LogicalKeyboardKey.keyT,
64 49: LogicalKeyboardKey.keyU,
65 50: LogicalKeyboardKey.keyV,
66 51: LogicalKeyboardKey.keyW,
67 52: LogicalKeyboardKey.keyX,
68 53: LogicalKeyboardKey.keyY,
69 54: LogicalKeyboardKey.keyZ,
70 55: LogicalKeyboardKey.comma,
71 56: LogicalKeyboardKey.period,
72 57: LogicalKeyboardKey.altLeft,
73 58: LogicalKeyboardKey.altRight,
74 59: LogicalKeyboardKey.shiftLeft,
75 60: LogicalKeyboardKey.shiftRight,
76 61: LogicalKeyboardKey.tab,
77 62: LogicalKeyboardKey.space,
78 63: LogicalKeyboardKey.symbol,
79 64: LogicalKeyboardKey.launchWebBrowser,
80 65: LogicalKeyboardKey.launchMail,
81 66: LogicalKeyboardKey.enter,
82 67: LogicalKeyboardKey.backspace,
83 68: LogicalKeyboardKey.backquote,
84 69: LogicalKeyboardKey.minus,
85 70: LogicalKeyboardKey.equal,
86 71: LogicalKeyboardKey.bracketLeft,
87 72: LogicalKeyboardKey.bracketRight,
88 73: LogicalKeyboardKey.backslash,
89 74: LogicalKeyboardKey.semicolon,
90 75: LogicalKeyboardKey.quote,
91 76: LogicalKeyboardKey.slash,
92 77: LogicalKeyboardKey.at,
93 79: LogicalKeyboardKey.headsetHook,
94 80: LogicalKeyboardKey.cameraFocus,
95 81: LogicalKeyboardKey.add,
96 82: LogicalKeyboardKey.contextMenu,
97 83: LogicalKeyboardKey.notification,
98 84: LogicalKeyboardKey.browserSearch,
99 85: LogicalKeyboardKey.mediaPlayPause,
100 86: LogicalKeyboardKey.mediaStop,
101 87: LogicalKeyboardKey.mediaTrackNext,
102 88: LogicalKeyboardKey.mediaTrackPrevious,
103 89: LogicalKeyboardKey.mediaRewind,
104 90: LogicalKeyboardKey.mediaFastForward,
105 91: LogicalKeyboardKey.microphoneVolumeMute,
106 92: LogicalKeyboardKey.pageUp,
107 93: LogicalKeyboardKey.pageDown,
108 95: LogicalKeyboardKey.modeChange,
109 96: LogicalKeyboardKey.gameButtonA,
110 97: LogicalKeyboardKey.gameButtonB,
111 98: LogicalKeyboardKey.gameButtonC,
112 99: LogicalKeyboardKey.gameButtonX,
113 100: LogicalKeyboardKey.gameButtonY,
114 101: LogicalKeyboardKey.gameButtonZ,
115 102: LogicalKeyboardKey.gameButtonLeft1,
116 103: LogicalKeyboardKey.gameButtonRight1,
117 104: LogicalKeyboardKey.gameButtonLeft2,
118 105: LogicalKeyboardKey.gameButtonRight2,
119 106: LogicalKeyboardKey.gameButtonThumbLeft,
120 107: LogicalKeyboardKey.gameButtonThumbRight,
121 108: LogicalKeyboardKey.gameButtonStart,
122 109: LogicalKeyboardKey.gameButtonSelect,
123 110: LogicalKeyboardKey.gameButtonMode,
124 111: LogicalKeyboardKey.escape,
125 112: LogicalKeyboardKey.delete,
126 113: LogicalKeyboardKey.controlLeft,
127 114: LogicalKeyboardKey.controlRight,
128 115: LogicalKeyboardKey.capsLock,
129 116: LogicalKeyboardKey.scrollLock,
130 117: LogicalKeyboardKey.metaLeft,
131 118: LogicalKeyboardKey.metaRight,
132 119: LogicalKeyboardKey.fn,
133 120: LogicalKeyboardKey.printScreen,
134 121: LogicalKeyboardKey.pause,
135 122: LogicalKeyboardKey.home,
136 123: LogicalKeyboardKey.end,
137 124: LogicalKeyboardKey.insert,
138 125: LogicalKeyboardKey.browserForward,
139 126: LogicalKeyboardKey.mediaPlay,
140 127: LogicalKeyboardKey.mediaPause,
141 128: LogicalKeyboardKey.close,
142 129: LogicalKeyboardKey.eject,
143 130: LogicalKeyboardKey.mediaRecord,
144 131: LogicalKeyboardKey.f1,
145 132: LogicalKeyboardKey.f2,
146 133: LogicalKeyboardKey.f3,
147 134: LogicalKeyboardKey.f4,
148 135: LogicalKeyboardKey.f5,
149 136: LogicalKeyboardKey.f6,
150 137: LogicalKeyboardKey.f7,
151 138: LogicalKeyboardKey.f8,
152 139: LogicalKeyboardKey.f9,
153 140: LogicalKeyboardKey.f10,
154 141: LogicalKeyboardKey.f11,
155 142: LogicalKeyboardKey.f12,
156 143: LogicalKeyboardKey.numLock,
157 144: LogicalKeyboardKey.numpad0,
158 145: LogicalKeyboardKey.numpad1,
159 146: LogicalKeyboardKey.numpad2,
160 147: LogicalKeyboardKey.numpad3,
161 148: LogicalKeyboardKey.numpad4,
162 149: LogicalKeyboardKey.numpad5,
163 150: LogicalKeyboardKey.numpad6,
164 151: LogicalKeyboardKey.numpad7,
165 152: LogicalKeyboardKey.numpad8,
166 153: LogicalKeyboardKey.numpad9,
167 154: LogicalKeyboardKey.numpadDivide,
168 155: LogicalKeyboardKey.numpadMultiply,
169 156: LogicalKeyboardKey.numpadSubtract,
170 157: LogicalKeyboardKey.numpadAdd,
171 158: LogicalKeyboardKey.numpadDecimal,
172 159: LogicalKeyboardKey.numpadComma,
173 160: LogicalKeyboardKey.numpadEnter,
174 161: LogicalKeyboardKey.numpadEqual,
175 162: LogicalKeyboardKey.numpadParenLeft,
176 163: LogicalKeyboardKey.numpadParenRight,
177 164: LogicalKeyboardKey.audioVolumeMute,
178 165: LogicalKeyboardKey.info,
179 166: LogicalKeyboardKey.channelUp,
180 167: LogicalKeyboardKey.channelDown,
181 168: LogicalKeyboardKey.zoomIn,
182 169: LogicalKeyboardKey.zoomOut,
183 170: LogicalKeyboardKey.tv,
184 172: LogicalKeyboardKey.guide,
185 173: LogicalKeyboardKey.dvr,
186 174: LogicalKeyboardKey.browserFavorites,
187 175: LogicalKeyboardKey.closedCaptionToggle,
188 176: LogicalKeyboardKey.settings,
189 177: LogicalKeyboardKey.tvPower,
190 178: LogicalKeyboardKey.tvInput,
191 179: LogicalKeyboardKey.stbPower,
192 180: LogicalKeyboardKey.stbInput,
193 181: LogicalKeyboardKey.avrPower,
194 182: LogicalKeyboardKey.avrInput,
195 183: LogicalKeyboardKey.colorF0Red,
196 184: LogicalKeyboardKey.colorF1Green,
197 185: LogicalKeyboardKey.colorF2Yellow,
198 186: LogicalKeyboardKey.colorF3Blue,
199 187: LogicalKeyboardKey.appSwitch,
200 188: LogicalKeyboardKey.gameButton1,
201 189: LogicalKeyboardKey.gameButton2,
202 190: LogicalKeyboardKey.gameButton3,
203 191: LogicalKeyboardKey.gameButton4,
204 192: LogicalKeyboardKey.gameButton5,
205 193: LogicalKeyboardKey.gameButton6,
206 194: LogicalKeyboardKey.gameButton7,
207 195: LogicalKeyboardKey.gameButton8,
208 196: LogicalKeyboardKey.gameButton9,
209 197: LogicalKeyboardKey.gameButton10,
210 198: LogicalKeyboardKey.gameButton11,
211 199: LogicalKeyboardKey.gameButton12,
212 200: LogicalKeyboardKey.gameButton13,
213 201: LogicalKeyboardKey.gameButton14,
214 202: LogicalKeyboardKey.gameButton15,
215 203: LogicalKeyboardKey.gameButton16,
216 204: LogicalKeyboardKey.groupNext,
217 205: LogicalKeyboardKey.mannerMode,
218 206: LogicalKeyboardKey.tv3DMode,
219 207: LogicalKeyboardKey.launchContacts,
220 208: LogicalKeyboardKey.launchCalendar,
221 209: LogicalKeyboardKey.launchMusicPlayer,
222 211: LogicalKeyboardKey.zenkakuHankaku,
223 212: LogicalKeyboardKey.eisu,
224 213: LogicalKeyboardKey.nonConvert,
225 214: LogicalKeyboardKey.convert,
226 215: LogicalKeyboardKey.hiraganaKatakana,
227 216: LogicalKeyboardKey.intlYen,
228 217: LogicalKeyboardKey.intlRo,
229 218: LogicalKeyboardKey.kanjiMode,
230 219: LogicalKeyboardKey.launchAssistant,
231 220: LogicalKeyboardKey.brightnessDown,
232 221: LogicalKeyboardKey.brightnessUp,
233 222: LogicalKeyboardKey.mediaAudioTrack,
234 223: LogicalKeyboardKey.sleep,
235 224: LogicalKeyboardKey.wakeUp,
236 225: LogicalKeyboardKey.pairing,
237 226: LogicalKeyboardKey.mediaTopMenu,
238 229: LogicalKeyboardKey.mediaLast,
239 230: LogicalKeyboardKey.tvDataService,
240 232: LogicalKeyboardKey.tvRadioService,
241 233: LogicalKeyboardKey.teletext,
242 234: LogicalKeyboardKey.tvNumberEntry,
243 235: LogicalKeyboardKey.tvTerrestrialAnalog,
244 236: LogicalKeyboardKey.tvTerrestrialDigital,
245 237: LogicalKeyboardKey.tvSatellite,
246 238: LogicalKeyboardKey.tvSatelliteBS,
247 239: LogicalKeyboardKey.tvSatelliteCS,
248 240: LogicalKeyboardKey.tvSatelliteToggle,
249 241: LogicalKeyboardKey.tvNetwork,
250 242: LogicalKeyboardKey.tvAntennaCable,
251 243: LogicalKeyboardKey.tvInputHDMI1,
252 244: LogicalKeyboardKey.tvInputHDMI2,
253 245: LogicalKeyboardKey.tvInputHDMI3,
254 246: LogicalKeyboardKey.tvInputHDMI4,
255 247: LogicalKeyboardKey.tvInputComposite1,
256 248: LogicalKeyboardKey.tvInputComposite2,
257 249: LogicalKeyboardKey.tvInputComponent1,
258 250: LogicalKeyboardKey.tvInputComponent2,
259 251: LogicalKeyboardKey.tvInputVGA1,
260 252: LogicalKeyboardKey.tvAudioDescription,
261 253: LogicalKeyboardKey.tvAudioDescriptionMixUp,
262 254: LogicalKeyboardKey.tvAudioDescriptionMixDown,
263 255: LogicalKeyboardKey.zoomToggle,
264 256: LogicalKeyboardKey.tvContentsMenu,
265 258: LogicalKeyboardKey.tvTimer,
266 259: LogicalKeyboardKey.help,
267 260: LogicalKeyboardKey.navigatePrevious,
268 261: LogicalKeyboardKey.navigateNext,
269 262: LogicalKeyboardKey.navigateIn,
270 263: LogicalKeyboardKey.navigateOut,
271 272: LogicalKeyboardKey.mediaSkipForward,
272 273: LogicalKeyboardKey.mediaSkipBackward,
273 274: LogicalKeyboardKey.mediaStepForward,
274 275: LogicalKeyboardKey.mediaStepBackward,
275 277: LogicalKeyboardKey.cut,
276 278: LogicalKeyboardKey.copy,
277 279: LogicalKeyboardKey.paste,
278};
279
280/// Maps Android-specific scan codes to the matching [PhysicalKeyboardKey].
281const Map<int, PhysicalKeyboardKey> kAndroidToPhysicalKey = <int, PhysicalKeyboardKey>{
282 1: PhysicalKeyboardKey.escape,
283 2: PhysicalKeyboardKey.digit1,
284 3: PhysicalKeyboardKey.digit2,
285 4: PhysicalKeyboardKey.digit3,
286 5: PhysicalKeyboardKey.digit4,
287 6: PhysicalKeyboardKey.digit5,
288 7: PhysicalKeyboardKey.digit6,
289 8: PhysicalKeyboardKey.digit7,
290 9: PhysicalKeyboardKey.digit8,
291 10: PhysicalKeyboardKey.digit9,
292 11: PhysicalKeyboardKey.digit0,
293 12: PhysicalKeyboardKey.minus,
294 13: PhysicalKeyboardKey.equal,
295 14: PhysicalKeyboardKey.backspace,
296 15: PhysicalKeyboardKey.tab,
297 16: PhysicalKeyboardKey.keyQ,
298 17: PhysicalKeyboardKey.keyW,
299 18: PhysicalKeyboardKey.keyE,
300 19: PhysicalKeyboardKey.keyR,
301 20: PhysicalKeyboardKey.keyT,
302 21: PhysicalKeyboardKey.keyY,
303 22: PhysicalKeyboardKey.keyU,
304 23: PhysicalKeyboardKey.keyI,
305 24: PhysicalKeyboardKey.keyO,
306 25: PhysicalKeyboardKey.keyP,
307 26: PhysicalKeyboardKey.bracketLeft,
308 27: PhysicalKeyboardKey.bracketRight,
309 28: PhysicalKeyboardKey.enter,
310 29: PhysicalKeyboardKey.controlLeft,
311 30: PhysicalKeyboardKey.keyA,
312 31: PhysicalKeyboardKey.keyS,
313 32: PhysicalKeyboardKey.keyD,
314 33: PhysicalKeyboardKey.keyF,
315 34: PhysicalKeyboardKey.keyG,
316 35: PhysicalKeyboardKey.keyH,
317 36: PhysicalKeyboardKey.keyJ,
318 37: PhysicalKeyboardKey.keyK,
319 38: PhysicalKeyboardKey.keyL,
320 39: PhysicalKeyboardKey.semicolon,
321 40: PhysicalKeyboardKey.quote,
322 41: PhysicalKeyboardKey.backquote,
323 42: PhysicalKeyboardKey.shiftLeft,
324 43: PhysicalKeyboardKey.backslash,
325 44: PhysicalKeyboardKey.keyZ,
326 45: PhysicalKeyboardKey.keyX,
327 46: PhysicalKeyboardKey.keyC,
328 47: PhysicalKeyboardKey.keyV,
329 48: PhysicalKeyboardKey.keyB,
330 49: PhysicalKeyboardKey.keyN,
331 50: PhysicalKeyboardKey.keyM,
332 51: PhysicalKeyboardKey.comma,
333 52: PhysicalKeyboardKey.period,
334 53: PhysicalKeyboardKey.slash,
335 54: PhysicalKeyboardKey.shiftRight,
336 55: PhysicalKeyboardKey.numpadMultiply,
337 56: PhysicalKeyboardKey.altLeft,
338 57: PhysicalKeyboardKey.space,
339 58: PhysicalKeyboardKey.capsLock,
340 59: PhysicalKeyboardKey.f1,
341 60: PhysicalKeyboardKey.f2,
342 61: PhysicalKeyboardKey.f3,
343 62: PhysicalKeyboardKey.f4,
344 63: PhysicalKeyboardKey.f5,
345 64: PhysicalKeyboardKey.f6,
346 65: PhysicalKeyboardKey.f7,
347 66: PhysicalKeyboardKey.f8,
348 67: PhysicalKeyboardKey.f9,
349 68: PhysicalKeyboardKey.f10,
350 69: PhysicalKeyboardKey.numLock,
351 70: PhysicalKeyboardKey.scrollLock,
352 71: PhysicalKeyboardKey.numpad7,
353 72: PhysicalKeyboardKey.numpad8,
354 73: PhysicalKeyboardKey.numpad9,
355 74: PhysicalKeyboardKey.numpadSubtract,
356 75: PhysicalKeyboardKey.numpad4,
357 76: PhysicalKeyboardKey.numpad5,
358 77: PhysicalKeyboardKey.numpad6,
359 78: PhysicalKeyboardKey.numpadAdd,
360 79: PhysicalKeyboardKey.numpad1,
361 80: PhysicalKeyboardKey.numpad2,
362 81: PhysicalKeyboardKey.numpad3,
363 82: PhysicalKeyboardKey.numpad0,
364 83: PhysicalKeyboardKey.numpadDecimal,
365 86: PhysicalKeyboardKey.backslash,
366 87: PhysicalKeyboardKey.f11,
367 88: PhysicalKeyboardKey.f12,
368 89: PhysicalKeyboardKey.intlRo,
369 90: PhysicalKeyboardKey.lang3,
370 91: PhysicalKeyboardKey.lang4,
371 92: PhysicalKeyboardKey.convert,
372 94: PhysicalKeyboardKey.nonConvert,
373 95: PhysicalKeyboardKey.numpadComma,
374 96: PhysicalKeyboardKey.numpadEnter,
375 97: PhysicalKeyboardKey.controlRight,
376 98: PhysicalKeyboardKey.numpadDivide,
377 99: PhysicalKeyboardKey.printScreen,
378 100: PhysicalKeyboardKey.altRight,
379 102: PhysicalKeyboardKey.home,
380 103: PhysicalKeyboardKey.arrowUp,
381 104: PhysicalKeyboardKey.pageUp,
382 105: PhysicalKeyboardKey.arrowLeft,
383 106: PhysicalKeyboardKey.arrowRight,
384 107: PhysicalKeyboardKey.end,
385 108: PhysicalKeyboardKey.arrowDown,
386 109: PhysicalKeyboardKey.pageDown,
387 110: PhysicalKeyboardKey.insert,
388 111: PhysicalKeyboardKey.delete,
389 113: PhysicalKeyboardKey.audioVolumeMute,
390 114: PhysicalKeyboardKey.audioVolumeDown,
391 115: PhysicalKeyboardKey.audioVolumeUp,
392 116: PhysicalKeyboardKey.power,
393 117: PhysicalKeyboardKey.numpadEqual,
394 119: PhysicalKeyboardKey.pause,
395 121: PhysicalKeyboardKey.numpadComma,
396 124: PhysicalKeyboardKey.intlYen,
397 125: PhysicalKeyboardKey.metaLeft,
398 126: PhysicalKeyboardKey.metaRight,
399 127: PhysicalKeyboardKey.contextMenu,
400 128: PhysicalKeyboardKey.mediaStop,
401 129: PhysicalKeyboardKey.again,
402 130: PhysicalKeyboardKey.props,
403 131: PhysicalKeyboardKey.undo,
404 133: PhysicalKeyboardKey.copy,
405 134: PhysicalKeyboardKey.open,
406 135: PhysicalKeyboardKey.paste,
407 136: PhysicalKeyboardKey.find,
408 137: PhysicalKeyboardKey.cut,
409 138: PhysicalKeyboardKey.help,
410 139: PhysicalKeyboardKey.contextMenu,
411 142: PhysicalKeyboardKey.sleep,
412 143: PhysicalKeyboardKey.wakeUp,
413 152: PhysicalKeyboardKey.power,
414 155: PhysicalKeyboardKey.launchMail,
415 156: PhysicalKeyboardKey.browserFavorites,
416 159: PhysicalKeyboardKey.browserForward,
417 160: PhysicalKeyboardKey.close,
418 161: PhysicalKeyboardKey.eject,
419 162: PhysicalKeyboardKey.eject,
420 163: PhysicalKeyboardKey.mediaTrackNext,
421 164: PhysicalKeyboardKey.mediaPlayPause,
422 165: PhysicalKeyboardKey.mediaTrackPrevious,
423 166: PhysicalKeyboardKey.mediaStop,
424 167: PhysicalKeyboardKey.mediaRecord,
425 168: PhysicalKeyboardKey.mediaRewind,
426 174: PhysicalKeyboardKey.exit,
427 177: PhysicalKeyboardKey.pageUp,
428 178: PhysicalKeyboardKey.pageDown,
429 179: PhysicalKeyboardKey.numpadParenLeft,
430 180: PhysicalKeyboardKey.numpadParenRight,
431 182: PhysicalKeyboardKey.redo,
432 183: PhysicalKeyboardKey.f13,
433 184: PhysicalKeyboardKey.f14,
434 185: PhysicalKeyboardKey.f15,
435 186: PhysicalKeyboardKey.f16,
436 187: PhysicalKeyboardKey.f17,
437 188: PhysicalKeyboardKey.f18,
438 189: PhysicalKeyboardKey.f19,
439 190: PhysicalKeyboardKey.f20,
440 191: PhysicalKeyboardKey.f21,
441 192: PhysicalKeyboardKey.f22,
442 193: PhysicalKeyboardKey.f23,
443 194: PhysicalKeyboardKey.f24,
444 200: PhysicalKeyboardKey.mediaPlay,
445 201: PhysicalKeyboardKey.mediaPause,
446 205: PhysicalKeyboardKey.suspend,
447 206: PhysicalKeyboardKey.close,
448 207: PhysicalKeyboardKey.mediaPlay,
449 208: PhysicalKeyboardKey.mediaFastForward,
450 209: PhysicalKeyboardKey.bassBoost,
451 210: PhysicalKeyboardKey.print,
452 215: PhysicalKeyboardKey.launchMail,
453 217: PhysicalKeyboardKey.browserSearch,
454 224: PhysicalKeyboardKey.brightnessDown,
455 225: PhysicalKeyboardKey.brightnessUp,
456 256: PhysicalKeyboardKey.gameButton1,
457 257: PhysicalKeyboardKey.gameButton2,
458 258: PhysicalKeyboardKey.gameButton3,
459 259: PhysicalKeyboardKey.gameButton4,
460 260: PhysicalKeyboardKey.gameButton5,
461 261: PhysicalKeyboardKey.gameButton6,
462 262: PhysicalKeyboardKey.gameButton7,
463 263: PhysicalKeyboardKey.gameButton8,
464 264: PhysicalKeyboardKey.gameButton9,
465 265: PhysicalKeyboardKey.gameButton10,
466 266: PhysicalKeyboardKey.gameButton11,
467 267: PhysicalKeyboardKey.gameButton12,
468 268: PhysicalKeyboardKey.gameButton13,
469 269: PhysicalKeyboardKey.gameButton14,
470 270: PhysicalKeyboardKey.gameButton15,
471 271: PhysicalKeyboardKey.gameButton16,
472 288: PhysicalKeyboardKey.gameButton1,
473 289: PhysicalKeyboardKey.gameButton2,
474 290: PhysicalKeyboardKey.gameButton3,
475 291: PhysicalKeyboardKey.gameButton4,
476 292: PhysicalKeyboardKey.gameButton5,
477 293: PhysicalKeyboardKey.gameButton6,
478 294: PhysicalKeyboardKey.gameButton7,
479 295: PhysicalKeyboardKey.gameButton8,
480 296: PhysicalKeyboardKey.gameButton9,
481 297: PhysicalKeyboardKey.gameButton10,
482 298: PhysicalKeyboardKey.gameButton11,
483 299: PhysicalKeyboardKey.gameButton12,
484 300: PhysicalKeyboardKey.gameButton13,
485 301: PhysicalKeyboardKey.gameButton14,
486 302: PhysicalKeyboardKey.gameButton15,
487 303: PhysicalKeyboardKey.gameButton16,
488 304: PhysicalKeyboardKey.gameButtonA,
489 305: PhysicalKeyboardKey.gameButtonB,
490 306: PhysicalKeyboardKey.gameButtonC,
491 307: PhysicalKeyboardKey.gameButtonX,
492 308: PhysicalKeyboardKey.gameButtonY,
493 309: PhysicalKeyboardKey.gameButtonZ,
494 310: PhysicalKeyboardKey.gameButtonLeft1,
495 311: PhysicalKeyboardKey.gameButtonRight1,
496 312: PhysicalKeyboardKey.gameButtonLeft2,
497 313: PhysicalKeyboardKey.gameButtonRight2,
498 314: PhysicalKeyboardKey.gameButtonSelect,
499 315: PhysicalKeyboardKey.gameButtonStart,
500 316: PhysicalKeyboardKey.gameButtonMode,
501 317: PhysicalKeyboardKey.gameButtonThumbLeft,
502 318: PhysicalKeyboardKey.gameButtonThumbRight,
503 353: PhysicalKeyboardKey.select,
504 358: PhysicalKeyboardKey.info,
505 370: PhysicalKeyboardKey.closedCaptionToggle,
506 397: PhysicalKeyboardKey.launchCalendar,
507 402: PhysicalKeyboardKey.channelUp,
508 403: PhysicalKeyboardKey.channelDown,
509 405: PhysicalKeyboardKey.mediaLast,
510 411: PhysicalKeyboardKey.pause,
511 429: PhysicalKeyboardKey.launchContacts,
512 464: PhysicalKeyboardKey.fn,
513 583: PhysicalKeyboardKey.launchAssistant,
514};
515
516/// A map of Android key codes which have printable representations, but appear
517/// on the number pad. Used to provide different key objects for keys like
518/// KEY_EQUALS and NUMPAD_EQUALS.
519const Map<int, LogicalKeyboardKey> kAndroidNumPadMap = <int, LogicalKeyboardKey>{
520 144: LogicalKeyboardKey.numpad0,
521 145: LogicalKeyboardKey.numpad1,
522 146: LogicalKeyboardKey.numpad2,
523 147: LogicalKeyboardKey.numpad3,
524 148: LogicalKeyboardKey.numpad4,
525 149: LogicalKeyboardKey.numpad5,
526 150: LogicalKeyboardKey.numpad6,
527 151: LogicalKeyboardKey.numpad7,
528 152: LogicalKeyboardKey.numpad8,
529 153: LogicalKeyboardKey.numpad9,
530 154: LogicalKeyboardKey.numpadDivide,
531 155: LogicalKeyboardKey.numpadMultiply,
532 156: LogicalKeyboardKey.numpadSubtract,
533 157: LogicalKeyboardKey.numpadAdd,
534 158: LogicalKeyboardKey.numpadDecimal,
535 159: LogicalKeyboardKey.numpadComma,
536 161: LogicalKeyboardKey.numpadEqual,
537 162: LogicalKeyboardKey.numpadParenLeft,
538 163: LogicalKeyboardKey.numpadParenRight,
539};
540
541/// Maps Fuchsia-specific IDs to the matching [LogicalKeyboardKey].
542const Map<int, LogicalKeyboardKey> kFuchsiaToLogicalKey = <int, LogicalKeyboardKey>{
543 0x1200000010: LogicalKeyboardKey.hyper,
544 0x1200000011: LogicalKeyboardKey.superKey,
545 0x1200000012: LogicalKeyboardKey.fn,
546 0x1200000013: LogicalKeyboardKey.fnLock,
547 0x1200000014: LogicalKeyboardKey.suspend,
548 0x1200000015: LogicalKeyboardKey.resume,
549 0x1200010082: LogicalKeyboardKey.sleep,
550 0x1200010083: LogicalKeyboardKey.wakeUp,
551 0x120005ff01: LogicalKeyboardKey.gameButton1,
552 0x120005ff02: LogicalKeyboardKey.gameButton2,
553 0x120005ff03: LogicalKeyboardKey.gameButton3,
554 0x120005ff04: LogicalKeyboardKey.gameButton4,
555 0x120005ff05: LogicalKeyboardKey.gameButton5,
556 0x120005ff06: LogicalKeyboardKey.gameButton6,
557 0x120005ff07: LogicalKeyboardKey.gameButton7,
558 0x120005ff08: LogicalKeyboardKey.gameButton8,
559 0x120005ff09: LogicalKeyboardKey.gameButton9,
560 0x120005ff0a: LogicalKeyboardKey.gameButton10,
561 0x120005ff0b: LogicalKeyboardKey.gameButton11,
562 0x120005ff0c: LogicalKeyboardKey.gameButton12,
563 0x120005ff0d: LogicalKeyboardKey.gameButton13,
564 0x120005ff0e: LogicalKeyboardKey.gameButton14,
565 0x120005ff0f: LogicalKeyboardKey.gameButton15,
566 0x120005ff10: LogicalKeyboardKey.gameButton16,
567 0x120005ff11: LogicalKeyboardKey.gameButtonA,
568 0x120005ff12: LogicalKeyboardKey.gameButtonB,
569 0x120005ff13: LogicalKeyboardKey.gameButtonC,
570 0x120005ff14: LogicalKeyboardKey.gameButtonLeft1,
571 0x120005ff15: LogicalKeyboardKey.gameButtonLeft2,
572 0x120005ff16: LogicalKeyboardKey.gameButtonMode,
573 0x120005ff17: LogicalKeyboardKey.gameButtonRight1,
574 0x120005ff18: LogicalKeyboardKey.gameButtonRight2,
575 0x120005ff19: LogicalKeyboardKey.gameButtonSelect,
576 0x120005ff1a: LogicalKeyboardKey.gameButtonStart,
577 0x120005ff1b: LogicalKeyboardKey.gameButtonThumbLeft,
578 0x120005ff1c: LogicalKeyboardKey.gameButtonThumbRight,
579 0x120005ff1d: LogicalKeyboardKey.gameButtonX,
580 0x120005ff1e: LogicalKeyboardKey.gameButtonY,
581 0x120005ff1f: LogicalKeyboardKey.gameButtonZ,
582 0x1200070004: LogicalKeyboardKey.keyA,
583 0x1200070005: LogicalKeyboardKey.keyB,
584 0x1200070006: LogicalKeyboardKey.keyC,
585 0x1200070007: LogicalKeyboardKey.keyD,
586 0x1200070008: LogicalKeyboardKey.keyE,
587 0x1200070009: LogicalKeyboardKey.keyF,
588 0x120007000a: LogicalKeyboardKey.keyG,
589 0x120007000b: LogicalKeyboardKey.keyH,
590 0x120007000c: LogicalKeyboardKey.keyI,
591 0x120007000d: LogicalKeyboardKey.keyJ,
592 0x120007000e: LogicalKeyboardKey.keyK,
593 0x120007000f: LogicalKeyboardKey.keyL,
594 0x1200070010: LogicalKeyboardKey.keyM,
595 0x1200070011: LogicalKeyboardKey.keyN,
596 0x1200070012: LogicalKeyboardKey.keyO,
597 0x1200070013: LogicalKeyboardKey.keyP,
598 0x1200070014: LogicalKeyboardKey.keyQ,
599 0x1200070015: LogicalKeyboardKey.keyR,
600 0x1200070016: LogicalKeyboardKey.keyS,
601 0x1200070017: LogicalKeyboardKey.keyT,
602 0x1200070018: LogicalKeyboardKey.keyU,
603 0x1200070019: LogicalKeyboardKey.keyV,
604 0x120007001a: LogicalKeyboardKey.keyW,
605 0x120007001b: LogicalKeyboardKey.keyX,
606 0x120007001c: LogicalKeyboardKey.keyY,
607 0x120007001d: LogicalKeyboardKey.keyZ,
608 0x120007001e: LogicalKeyboardKey.digit1,
609 0x120007001f: LogicalKeyboardKey.digit2,
610 0x1200070020: LogicalKeyboardKey.digit3,
611 0x1200070021: LogicalKeyboardKey.digit4,
612 0x1200070022: LogicalKeyboardKey.digit5,
613 0x1200070023: LogicalKeyboardKey.digit6,
614 0x1200070024: LogicalKeyboardKey.digit7,
615 0x1200070025: LogicalKeyboardKey.digit8,
616 0x1200070026: LogicalKeyboardKey.digit9,
617 0x1200070027: LogicalKeyboardKey.digit0,
618 0x1200070028: LogicalKeyboardKey.enter,
619 0x1200070029: LogicalKeyboardKey.escape,
620 0x120007002a: LogicalKeyboardKey.backspace,
621 0x120007002b: LogicalKeyboardKey.tab,
622 0x120007002c: LogicalKeyboardKey.space,
623 0x120007002d: LogicalKeyboardKey.minus,
624 0x120007002e: LogicalKeyboardKey.equal,
625 0x120007002f: LogicalKeyboardKey.bracketLeft,
626 0x1200070030: LogicalKeyboardKey.bracketRight,
627 0x1200070031: LogicalKeyboardKey.backslash,
628 0x1200070033: LogicalKeyboardKey.semicolon,
629 0x1200070034: LogicalKeyboardKey.quote,
630 0x1200070035: LogicalKeyboardKey.backquote,
631 0x1200070036: LogicalKeyboardKey.comma,
632 0x1200070037: LogicalKeyboardKey.period,
633 0x1200070038: LogicalKeyboardKey.slash,
634 0x1200070039: LogicalKeyboardKey.capsLock,
635 0x120007003a: LogicalKeyboardKey.f1,
636 0x120007003b: LogicalKeyboardKey.f2,
637 0x120007003c: LogicalKeyboardKey.f3,
638 0x120007003d: LogicalKeyboardKey.f4,
639 0x120007003e: LogicalKeyboardKey.f5,
640 0x120007003f: LogicalKeyboardKey.f6,
641 0x1200070040: LogicalKeyboardKey.f7,
642 0x1200070041: LogicalKeyboardKey.f8,
643 0x1200070042: LogicalKeyboardKey.f9,
644 0x1200070043: LogicalKeyboardKey.f10,
645 0x1200070044: LogicalKeyboardKey.f11,
646 0x1200070045: LogicalKeyboardKey.f12,
647 0x1200070046: LogicalKeyboardKey.printScreen,
648 0x1200070047: LogicalKeyboardKey.scrollLock,
649 0x1200070048: LogicalKeyboardKey.pause,
650 0x1200070049: LogicalKeyboardKey.insert,
651 0x120007004a: LogicalKeyboardKey.home,
652 0x120007004b: LogicalKeyboardKey.pageUp,
653 0x120007004c: LogicalKeyboardKey.delete,
654 0x120007004d: LogicalKeyboardKey.end,
655 0x120007004e: LogicalKeyboardKey.pageDown,
656 0x120007004f: LogicalKeyboardKey.arrowRight,
657 0x1200070050: LogicalKeyboardKey.arrowLeft,
658 0x1200070051: LogicalKeyboardKey.arrowDown,
659 0x1200070052: LogicalKeyboardKey.arrowUp,
660 0x1200070053: LogicalKeyboardKey.numLock,
661 0x1200070054: LogicalKeyboardKey.numpadDivide,
662 0x1200070055: LogicalKeyboardKey.numpadMultiply,
663 0x1200070056: LogicalKeyboardKey.numpadSubtract,
664 0x1200070057: LogicalKeyboardKey.numpadAdd,
665 0x1200070058: LogicalKeyboardKey.numpadEnter,
666 0x1200070059: LogicalKeyboardKey.numpad1,
667 0x120007005a: LogicalKeyboardKey.numpad2,
668 0x120007005b: LogicalKeyboardKey.numpad3,
669 0x120007005c: LogicalKeyboardKey.numpad4,
670 0x120007005d: LogicalKeyboardKey.numpad5,
671 0x120007005e: LogicalKeyboardKey.numpad6,
672 0x120007005f: LogicalKeyboardKey.numpad7,
673 0x1200070060: LogicalKeyboardKey.numpad8,
674 0x1200070061: LogicalKeyboardKey.numpad9,
675 0x1200070062: LogicalKeyboardKey.numpad0,
676 0x1200070063: LogicalKeyboardKey.numpadDecimal,
677 0x1200070064: LogicalKeyboardKey.intlBackslash,
678 0x1200070065: LogicalKeyboardKey.contextMenu,
679 0x1200070066: LogicalKeyboardKey.power,
680 0x1200070067: LogicalKeyboardKey.numpadEqual,
681 0x1200070068: LogicalKeyboardKey.f13,
682 0x1200070069: LogicalKeyboardKey.f14,
683 0x120007006a: LogicalKeyboardKey.f15,
684 0x120007006b: LogicalKeyboardKey.f16,
685 0x120007006c: LogicalKeyboardKey.f17,
686 0x120007006d: LogicalKeyboardKey.f18,
687 0x120007006e: LogicalKeyboardKey.f19,
688 0x120007006f: LogicalKeyboardKey.f20,
689 0x1200070070: LogicalKeyboardKey.f21,
690 0x1200070071: LogicalKeyboardKey.f22,
691 0x1200070072: LogicalKeyboardKey.f23,
692 0x1200070073: LogicalKeyboardKey.f24,
693 0x1200070074: LogicalKeyboardKey.open,
694 0x1200070075: LogicalKeyboardKey.help,
695 0x1200070077: LogicalKeyboardKey.select,
696 0x1200070079: LogicalKeyboardKey.again,
697 0x120007007a: LogicalKeyboardKey.undo,
698 0x120007007b: LogicalKeyboardKey.cut,
699 0x120007007c: LogicalKeyboardKey.copy,
700 0x120007007d: LogicalKeyboardKey.paste,
701 0x120007007e: LogicalKeyboardKey.find,
702 0x120007007f: LogicalKeyboardKey.audioVolumeMute,
703 0x1200070080: LogicalKeyboardKey.audioVolumeUp,
704 0x1200070081: LogicalKeyboardKey.audioVolumeDown,
705 0x1200070085: LogicalKeyboardKey.numpadComma,
706 0x1200070087: LogicalKeyboardKey.intlRo,
707 0x1200070088: LogicalKeyboardKey.kanaMode,
708 0x1200070089: LogicalKeyboardKey.intlYen,
709 0x120007008a: LogicalKeyboardKey.convert,
710 0x120007008b: LogicalKeyboardKey.nonConvert,
711 0x1200070090: LogicalKeyboardKey.lang1,
712 0x1200070091: LogicalKeyboardKey.lang2,
713 0x1200070092: LogicalKeyboardKey.lang3,
714 0x1200070093: LogicalKeyboardKey.lang4,
715 0x1200070094: LogicalKeyboardKey.lang5,
716 0x120007009b: LogicalKeyboardKey.abort,
717 0x12000700a3: LogicalKeyboardKey.props,
718 0x12000700b6: LogicalKeyboardKey.numpadParenLeft,
719 0x12000700b7: LogicalKeyboardKey.numpadParenRight,
720 0x12000700e0: LogicalKeyboardKey.controlLeft,
721 0x12000700e1: LogicalKeyboardKey.shiftLeft,
722 0x12000700e2: LogicalKeyboardKey.altLeft,
723 0x12000700e3: LogicalKeyboardKey.metaLeft,
724 0x12000700e4: LogicalKeyboardKey.controlRight,
725 0x12000700e5: LogicalKeyboardKey.shiftRight,
726 0x12000700e6: LogicalKeyboardKey.altRight,
727 0x12000700e7: LogicalKeyboardKey.metaRight,
728 0x12000c0060: LogicalKeyboardKey.info,
729 0x12000c0061: LogicalKeyboardKey.closedCaptionToggle,
730 0x12000c006f: LogicalKeyboardKey.brightnessUp,
731 0x12000c0070: LogicalKeyboardKey.brightnessDown,
732 0x12000c0083: LogicalKeyboardKey.mediaLast,
733 0x12000c008c: LogicalKeyboardKey.launchPhone,
734 0x12000c0094: LogicalKeyboardKey.exit,
735 0x12000c009c: LogicalKeyboardKey.channelUp,
736 0x12000c009d: LogicalKeyboardKey.channelDown,
737 0x12000c00b0: LogicalKeyboardKey.mediaPlay,
738 0x12000c00b1: LogicalKeyboardKey.mediaPause,
739 0x12000c00b2: LogicalKeyboardKey.mediaRecord,
740 0x12000c00b3: LogicalKeyboardKey.mediaFastForward,
741 0x12000c00b4: LogicalKeyboardKey.mediaRewind,
742 0x12000c00b5: LogicalKeyboardKey.mediaTrackNext,
743 0x12000c00b6: LogicalKeyboardKey.mediaTrackPrevious,
744 0x12000c00b7: LogicalKeyboardKey.mediaStop,
745 0x12000c00b8: LogicalKeyboardKey.eject,
746 0x12000c00cd: LogicalKeyboardKey.mediaPlayPause,
747 0x12000c00cf: LogicalKeyboardKey.speechInputToggle,
748 0x12000c0184: LogicalKeyboardKey.launchWordProcessor,
749 0x12000c0186: LogicalKeyboardKey.launchSpreadsheet,
750 0x12000c018a: LogicalKeyboardKey.launchMail,
751 0x12000c018d: LogicalKeyboardKey.launchContacts,
752 0x12000c018e: LogicalKeyboardKey.launchCalendar,
753 0x12000c019c: LogicalKeyboardKey.logOff,
754 0x12000c019f: LogicalKeyboardKey.launchControlPanel,
755 0x12000c01ab: LogicalKeyboardKey.spellCheck,
756 0x12000c01b1: LogicalKeyboardKey.launchScreenSaver,
757 0x12000c01cb: LogicalKeyboardKey.launchAssistant,
758 0x12000c0201: LogicalKeyboardKey.newKey,
759 0x12000c0203: LogicalKeyboardKey.close,
760 0x12000c0207: LogicalKeyboardKey.save,
761 0x12000c0208: LogicalKeyboardKey.print,
762 0x12000c0221: LogicalKeyboardKey.browserSearch,
763 0x12000c0223: LogicalKeyboardKey.browserHome,
764 0x12000c0224: LogicalKeyboardKey.browserBack,
765 0x12000c0225: LogicalKeyboardKey.browserForward,
766 0x12000c0226: LogicalKeyboardKey.browserStop,
767 0x12000c0227: LogicalKeyboardKey.browserRefresh,
768 0x12000c022a: LogicalKeyboardKey.browserFavorites,
769 0x12000c022d: LogicalKeyboardKey.zoomIn,
770 0x12000c022e: LogicalKeyboardKey.zoomOut,
771 0x12000c0232: LogicalKeyboardKey.zoomToggle,
772 0x12000c0279: LogicalKeyboardKey.redo,
773 0x12000c0289: LogicalKeyboardKey.mailReply,
774 0x12000c028b: LogicalKeyboardKey.mailForward,
775 0x12000c028c: LogicalKeyboardKey.mailSend,
776};
777
778/// Maps Fuchsia-specific USB HID Usage IDs to the matching
779/// [PhysicalKeyboardKey].
780const Map<int, PhysicalKeyboardKey> kFuchsiaToPhysicalKey = <int, PhysicalKeyboardKey>{
781 0x00000010: PhysicalKeyboardKey.hyper,
782 0x00000011: PhysicalKeyboardKey.superKey,
783 0x00000012: PhysicalKeyboardKey.fn,
784 0x00000013: PhysicalKeyboardKey.fnLock,
785 0x00000014: PhysicalKeyboardKey.suspend,
786 0x00000015: PhysicalKeyboardKey.resume,
787 0x00000016: PhysicalKeyboardKey.turbo,
788 0x00000017: PhysicalKeyboardKey.privacyScreenToggle,
789 0x00000018: PhysicalKeyboardKey.microphoneMuteToggle,
790 0x00010082: PhysicalKeyboardKey.sleep,
791 0x00010083: PhysicalKeyboardKey.wakeUp,
792 0x000100b5: PhysicalKeyboardKey.displayToggleIntExt,
793 0x0005ff01: PhysicalKeyboardKey.gameButton1,
794 0x0005ff02: PhysicalKeyboardKey.gameButton2,
795 0x0005ff03: PhysicalKeyboardKey.gameButton3,
796 0x0005ff04: PhysicalKeyboardKey.gameButton4,
797 0x0005ff05: PhysicalKeyboardKey.gameButton5,
798 0x0005ff06: PhysicalKeyboardKey.gameButton6,
799 0x0005ff07: PhysicalKeyboardKey.gameButton7,
800 0x0005ff08: PhysicalKeyboardKey.gameButton8,
801 0x0005ff09: PhysicalKeyboardKey.gameButton9,
802 0x0005ff0a: PhysicalKeyboardKey.gameButton10,
803 0x0005ff0b: PhysicalKeyboardKey.gameButton11,
804 0x0005ff0c: PhysicalKeyboardKey.gameButton12,
805 0x0005ff0d: PhysicalKeyboardKey.gameButton13,
806 0x0005ff0e: PhysicalKeyboardKey.gameButton14,
807 0x0005ff0f: PhysicalKeyboardKey.gameButton15,
808 0x0005ff10: PhysicalKeyboardKey.gameButton16,
809 0x0005ff11: PhysicalKeyboardKey.gameButtonA,
810 0x0005ff12: PhysicalKeyboardKey.gameButtonB,
811 0x0005ff13: PhysicalKeyboardKey.gameButtonC,
812 0x0005ff14: PhysicalKeyboardKey.gameButtonLeft1,
813 0x0005ff15: PhysicalKeyboardKey.gameButtonLeft2,
814 0x0005ff16: PhysicalKeyboardKey.gameButtonMode,
815 0x0005ff17: PhysicalKeyboardKey.gameButtonRight1,
816 0x0005ff18: PhysicalKeyboardKey.gameButtonRight2,
817 0x0005ff19: PhysicalKeyboardKey.gameButtonSelect,
818 0x0005ff1a: PhysicalKeyboardKey.gameButtonStart,
819 0x0005ff1b: PhysicalKeyboardKey.gameButtonThumbLeft,
820 0x0005ff1c: PhysicalKeyboardKey.gameButtonThumbRight,
821 0x0005ff1d: PhysicalKeyboardKey.gameButtonX,
822 0x0005ff1e: PhysicalKeyboardKey.gameButtonY,
823 0x0005ff1f: PhysicalKeyboardKey.gameButtonZ,
824 0x00070000: PhysicalKeyboardKey.usbReserved,
825 0x00070001: PhysicalKeyboardKey.usbErrorRollOver,
826 0x00070002: PhysicalKeyboardKey.usbPostFail,
827 0x00070003: PhysicalKeyboardKey.usbErrorUndefined,
828 0x00070004: PhysicalKeyboardKey.keyA,
829 0x00070005: PhysicalKeyboardKey.keyB,
830 0x00070006: PhysicalKeyboardKey.keyC,
831 0x00070007: PhysicalKeyboardKey.keyD,
832 0x00070008: PhysicalKeyboardKey.keyE,
833 0x00070009: PhysicalKeyboardKey.keyF,
834 0x0007000a: PhysicalKeyboardKey.keyG,
835 0x0007000b: PhysicalKeyboardKey.keyH,
836 0x0007000c: PhysicalKeyboardKey.keyI,
837 0x0007000d: PhysicalKeyboardKey.keyJ,
838 0x0007000e: PhysicalKeyboardKey.keyK,
839 0x0007000f: PhysicalKeyboardKey.keyL,
840 0x00070010: PhysicalKeyboardKey.keyM,
841 0x00070011: PhysicalKeyboardKey.keyN,
842 0x00070012: PhysicalKeyboardKey.keyO,
843 0x00070013: PhysicalKeyboardKey.keyP,
844 0x00070014: PhysicalKeyboardKey.keyQ,
845 0x00070015: PhysicalKeyboardKey.keyR,
846 0x00070016: PhysicalKeyboardKey.keyS,
847 0x00070017: PhysicalKeyboardKey.keyT,
848 0x00070018: PhysicalKeyboardKey.keyU,
849 0x00070019: PhysicalKeyboardKey.keyV,
850 0x0007001a: PhysicalKeyboardKey.keyW,
851 0x0007001b: PhysicalKeyboardKey.keyX,
852 0x0007001c: PhysicalKeyboardKey.keyY,
853 0x0007001d: PhysicalKeyboardKey.keyZ,
854 0x0007001e: PhysicalKeyboardKey.digit1,
855 0x0007001f: PhysicalKeyboardKey.digit2,
856 0x00070020: PhysicalKeyboardKey.digit3,
857 0x00070021: PhysicalKeyboardKey.digit4,
858 0x00070022: PhysicalKeyboardKey.digit5,
859 0x00070023: PhysicalKeyboardKey.digit6,
860 0x00070024: PhysicalKeyboardKey.digit7,
861 0x00070025: PhysicalKeyboardKey.digit8,
862 0x00070026: PhysicalKeyboardKey.digit9,
863 0x00070027: PhysicalKeyboardKey.digit0,
864 0x00070028: PhysicalKeyboardKey.enter,
865 0x00070029: PhysicalKeyboardKey.escape,
866 0x0007002a: PhysicalKeyboardKey.backspace,
867 0x0007002b: PhysicalKeyboardKey.tab,
868 0x0007002c: PhysicalKeyboardKey.space,
869 0x0007002d: PhysicalKeyboardKey.minus,
870 0x0007002e: PhysicalKeyboardKey.equal,
871 0x0007002f: PhysicalKeyboardKey.bracketLeft,
872 0x00070030: PhysicalKeyboardKey.bracketRight,
873 0x00070031: PhysicalKeyboardKey.backslash,
874 0x00070033: PhysicalKeyboardKey.semicolon,
875 0x00070034: PhysicalKeyboardKey.quote,
876 0x00070035: PhysicalKeyboardKey.backquote,
877 0x00070036: PhysicalKeyboardKey.comma,
878 0x00070037: PhysicalKeyboardKey.period,
879 0x00070038: PhysicalKeyboardKey.slash,
880 0x00070039: PhysicalKeyboardKey.capsLock,
881 0x0007003a: PhysicalKeyboardKey.f1,
882 0x0007003b: PhysicalKeyboardKey.f2,
883 0x0007003c: PhysicalKeyboardKey.f3,
884 0x0007003d: PhysicalKeyboardKey.f4,
885 0x0007003e: PhysicalKeyboardKey.f5,
886 0x0007003f: PhysicalKeyboardKey.f6,
887 0x00070040: PhysicalKeyboardKey.f7,
888 0x00070041: PhysicalKeyboardKey.f8,
889 0x00070042: PhysicalKeyboardKey.f9,
890 0x00070043: PhysicalKeyboardKey.f10,
891 0x00070044: PhysicalKeyboardKey.f11,
892 0x00070045: PhysicalKeyboardKey.f12,
893 0x00070046: PhysicalKeyboardKey.printScreen,
894 0x00070047: PhysicalKeyboardKey.scrollLock,
895 0x00070048: PhysicalKeyboardKey.pause,
896 0x00070049: PhysicalKeyboardKey.insert,
897 0x0007004a: PhysicalKeyboardKey.home,
898 0x0007004b: PhysicalKeyboardKey.pageUp,
899 0x0007004c: PhysicalKeyboardKey.delete,
900 0x0007004d: PhysicalKeyboardKey.end,
901 0x0007004e: PhysicalKeyboardKey.pageDown,
902 0x0007004f: PhysicalKeyboardKey.arrowRight,
903 0x00070050: PhysicalKeyboardKey.arrowLeft,
904 0x00070051: PhysicalKeyboardKey.arrowDown,
905 0x00070052: PhysicalKeyboardKey.arrowUp,
906 0x00070053: PhysicalKeyboardKey.numLock,
907 0x00070054: PhysicalKeyboardKey.numpadDivide,
908 0x00070055: PhysicalKeyboardKey.numpadMultiply,
909 0x00070056: PhysicalKeyboardKey.numpadSubtract,
910 0x00070057: PhysicalKeyboardKey.numpadAdd,
911 0x00070058: PhysicalKeyboardKey.numpadEnter,
912 0x00070059: PhysicalKeyboardKey.numpad1,
913 0x0007005a: PhysicalKeyboardKey.numpad2,
914 0x0007005b: PhysicalKeyboardKey.numpad3,
915 0x0007005c: PhysicalKeyboardKey.numpad4,
916 0x0007005d: PhysicalKeyboardKey.numpad5,
917 0x0007005e: PhysicalKeyboardKey.numpad6,
918 0x0007005f: PhysicalKeyboardKey.numpad7,
919 0x00070060: PhysicalKeyboardKey.numpad8,
920 0x00070061: PhysicalKeyboardKey.numpad9,
921 0x00070062: PhysicalKeyboardKey.numpad0,
922 0x00070063: PhysicalKeyboardKey.numpadDecimal,
923 0x00070064: PhysicalKeyboardKey.intlBackslash,
924 0x00070065: PhysicalKeyboardKey.contextMenu,
925 0x00070066: PhysicalKeyboardKey.power,
926 0x00070067: PhysicalKeyboardKey.numpadEqual,
927 0x00070068: PhysicalKeyboardKey.f13,
928 0x00070069: PhysicalKeyboardKey.f14,
929 0x0007006a: PhysicalKeyboardKey.f15,
930 0x0007006b: PhysicalKeyboardKey.f16,
931 0x0007006c: PhysicalKeyboardKey.f17,
932 0x0007006d: PhysicalKeyboardKey.f18,
933 0x0007006e: PhysicalKeyboardKey.f19,
934 0x0007006f: PhysicalKeyboardKey.f20,
935 0x00070070: PhysicalKeyboardKey.f21,
936 0x00070071: PhysicalKeyboardKey.f22,
937 0x00070072: PhysicalKeyboardKey.f23,
938 0x00070073: PhysicalKeyboardKey.f24,
939 0x00070074: PhysicalKeyboardKey.open,
940 0x00070075: PhysicalKeyboardKey.help,
941 0x00070077: PhysicalKeyboardKey.select,
942 0x00070079: PhysicalKeyboardKey.again,
943 0x0007007a: PhysicalKeyboardKey.undo,
944 0x0007007b: PhysicalKeyboardKey.cut,
945 0x0007007c: PhysicalKeyboardKey.copy,
946 0x0007007d: PhysicalKeyboardKey.paste,
947 0x0007007e: PhysicalKeyboardKey.find,
948 0x0007007f: PhysicalKeyboardKey.audioVolumeMute,
949 0x00070080: PhysicalKeyboardKey.audioVolumeUp,
950 0x00070081: PhysicalKeyboardKey.audioVolumeDown,
951 0x00070085: PhysicalKeyboardKey.numpadComma,
952 0x00070087: PhysicalKeyboardKey.intlRo,
953 0x00070088: PhysicalKeyboardKey.kanaMode,
954 0x00070089: PhysicalKeyboardKey.intlYen,
955 0x0007008a: PhysicalKeyboardKey.convert,
956 0x0007008b: PhysicalKeyboardKey.nonConvert,
957 0x00070090: PhysicalKeyboardKey.lang1,
958 0x00070091: PhysicalKeyboardKey.lang2,
959 0x00070092: PhysicalKeyboardKey.lang3,
960 0x00070093: PhysicalKeyboardKey.lang4,
961 0x00070094: PhysicalKeyboardKey.lang5,
962 0x0007009b: PhysicalKeyboardKey.abort,
963 0x000700a3: PhysicalKeyboardKey.props,
964 0x000700b6: PhysicalKeyboardKey.numpadParenLeft,
965 0x000700b7: PhysicalKeyboardKey.numpadParenRight,
966 0x000700bb: PhysicalKeyboardKey.numpadBackspace,
967 0x000700d0: PhysicalKeyboardKey.numpadMemoryStore,
968 0x000700d1: PhysicalKeyboardKey.numpadMemoryRecall,
969 0x000700d2: PhysicalKeyboardKey.numpadMemoryClear,
970 0x000700d3: PhysicalKeyboardKey.numpadMemoryAdd,
971 0x000700d4: PhysicalKeyboardKey.numpadMemorySubtract,
972 0x000700d7: PhysicalKeyboardKey.numpadSignChange,
973 0x000700d8: PhysicalKeyboardKey.numpadClear,
974 0x000700d9: PhysicalKeyboardKey.numpadClearEntry,
975 0x000700e0: PhysicalKeyboardKey.controlLeft,
976 0x000700e1: PhysicalKeyboardKey.shiftLeft,
977 0x000700e2: PhysicalKeyboardKey.altLeft,
978 0x000700e3: PhysicalKeyboardKey.metaLeft,
979 0x000700e4: PhysicalKeyboardKey.controlRight,
980 0x000700e5: PhysicalKeyboardKey.shiftRight,
981 0x000700e6: PhysicalKeyboardKey.altRight,
982 0x000700e7: PhysicalKeyboardKey.metaRight,
983 0x000c0060: PhysicalKeyboardKey.info,
984 0x000c0061: PhysicalKeyboardKey.closedCaptionToggle,
985 0x000c006f: PhysicalKeyboardKey.brightnessUp,
986 0x000c0070: PhysicalKeyboardKey.brightnessDown,
987 0x000c0072: PhysicalKeyboardKey.brightnessToggle,
988 0x000c0073: PhysicalKeyboardKey.brightnessMinimum,
989 0x000c0074: PhysicalKeyboardKey.brightnessMaximum,
990 0x000c0075: PhysicalKeyboardKey.brightnessAuto,
991 0x000c0079: PhysicalKeyboardKey.kbdIllumUp,
992 0x000c007a: PhysicalKeyboardKey.kbdIllumDown,
993 0x000c0083: PhysicalKeyboardKey.mediaLast,
994 0x000c008c: PhysicalKeyboardKey.launchPhone,
995 0x000c008d: PhysicalKeyboardKey.programGuide,
996 0x000c0094: PhysicalKeyboardKey.exit,
997 0x000c009c: PhysicalKeyboardKey.channelUp,
998 0x000c009d: PhysicalKeyboardKey.channelDown,
999 0x000c00b0: PhysicalKeyboardKey.mediaPlay,
1000 0x000c00b1: PhysicalKeyboardKey.mediaPause,
1001 0x000c00b2: PhysicalKeyboardKey.mediaRecord,
1002 0x000c00b3: PhysicalKeyboardKey.mediaFastForward,
1003 0x000c00b4: PhysicalKeyboardKey.mediaRewind,
1004 0x000c00b5: PhysicalKeyboardKey.mediaTrackNext,
1005 0x000c00b6: PhysicalKeyboardKey.mediaTrackPrevious,
1006 0x000c00b7: PhysicalKeyboardKey.mediaStop,
1007 0x000c00b8: PhysicalKeyboardKey.eject,
1008 0x000c00cd: PhysicalKeyboardKey.mediaPlayPause,
1009 0x000c00cf: PhysicalKeyboardKey.speechInputToggle,
1010 0x000c00e5: PhysicalKeyboardKey.bassBoost,
1011 0x000c0183: PhysicalKeyboardKey.mediaSelect,
1012 0x000c0184: PhysicalKeyboardKey.launchWordProcessor,
1013 0x000c0186: PhysicalKeyboardKey.launchSpreadsheet,
1014 0x000c018a: PhysicalKeyboardKey.launchMail,
1015 0x000c018d: PhysicalKeyboardKey.launchContacts,
1016 0x000c018e: PhysicalKeyboardKey.launchCalendar,
1017 0x000c0192: PhysicalKeyboardKey.launchApp2,
1018 0x000c0194: PhysicalKeyboardKey.launchApp1,
1019 0x000c0196: PhysicalKeyboardKey.launchInternetBrowser,
1020 0x000c019c: PhysicalKeyboardKey.logOff,
1021 0x000c019e: PhysicalKeyboardKey.lockScreen,
1022 0x000c019f: PhysicalKeyboardKey.launchControlPanel,
1023 0x000c01a2: PhysicalKeyboardKey.selectTask,
1024 0x000c01a7: PhysicalKeyboardKey.launchDocuments,
1025 0x000c01ab: PhysicalKeyboardKey.spellCheck,
1026 0x000c01ae: PhysicalKeyboardKey.launchKeyboardLayout,
1027 0x000c01b1: PhysicalKeyboardKey.launchScreenSaver,
1028 0x000c01b7: PhysicalKeyboardKey.launchAudioBrowser,
1029 0x000c01cb: PhysicalKeyboardKey.launchAssistant,
1030 0x000c0201: PhysicalKeyboardKey.newKey,
1031 0x000c0203: PhysicalKeyboardKey.close,
1032 0x000c0207: PhysicalKeyboardKey.save,
1033 0x000c0208: PhysicalKeyboardKey.print,
1034 0x000c0221: PhysicalKeyboardKey.browserSearch,
1035 0x000c0223: PhysicalKeyboardKey.browserHome,
1036 0x000c0224: PhysicalKeyboardKey.browserBack,
1037 0x000c0225: PhysicalKeyboardKey.browserForward,
1038 0x000c0226: PhysicalKeyboardKey.browserStop,
1039 0x000c0227: PhysicalKeyboardKey.browserRefresh,
1040 0x000c022a: PhysicalKeyboardKey.browserFavorites,
1041 0x000c022d: PhysicalKeyboardKey.zoomIn,
1042 0x000c022e: PhysicalKeyboardKey.zoomOut,
1043 0x000c0232: PhysicalKeyboardKey.zoomToggle,
1044 0x000c0279: PhysicalKeyboardKey.redo,
1045 0x000c0289: PhysicalKeyboardKey.mailReply,
1046 0x000c028b: PhysicalKeyboardKey.mailForward,
1047 0x000c028c: PhysicalKeyboardKey.mailSend,
1048 0x000c029d: PhysicalKeyboardKey.keyboardLayoutSelect,
1049 0x000c029f: PhysicalKeyboardKey.showAllWindows,
1050};
1051
1052/// Maps macOS-specific key code values representing [PhysicalKeyboardKey].
1053///
1054/// MacOS doesn't provide a scan code, but a virtual keycode to represent a physical key.
1055const Map<int, PhysicalKeyboardKey> kMacOsToPhysicalKey = <int, PhysicalKeyboardKey>{
1056 0x00000000: PhysicalKeyboardKey.keyA,
1057 0x00000001: PhysicalKeyboardKey.keyS,
1058 0x00000002: PhysicalKeyboardKey.keyD,
1059 0x00000003: PhysicalKeyboardKey.keyF,
1060 0x00000004: PhysicalKeyboardKey.keyH,
1061 0x00000005: PhysicalKeyboardKey.keyG,
1062 0x00000006: PhysicalKeyboardKey.keyZ,
1063 0x00000007: PhysicalKeyboardKey.keyX,
1064 0x00000008: PhysicalKeyboardKey.keyC,
1065 0x00000009: PhysicalKeyboardKey.keyV,
1066 0x0000000a: PhysicalKeyboardKey.intlBackslash,
1067 0x0000000b: PhysicalKeyboardKey.keyB,
1068 0x0000000c: PhysicalKeyboardKey.keyQ,
1069 0x0000000d: PhysicalKeyboardKey.keyW,
1070 0x0000000e: PhysicalKeyboardKey.keyE,
1071 0x0000000f: PhysicalKeyboardKey.keyR,
1072 0x00000010: PhysicalKeyboardKey.keyY,
1073 0x00000011: PhysicalKeyboardKey.keyT,
1074 0x00000012: PhysicalKeyboardKey.digit1,
1075 0x00000013: PhysicalKeyboardKey.digit2,
1076 0x00000014: PhysicalKeyboardKey.digit3,
1077 0x00000015: PhysicalKeyboardKey.digit4,
1078 0x00000016: PhysicalKeyboardKey.digit6,
1079 0x00000017: PhysicalKeyboardKey.digit5,
1080 0x00000018: PhysicalKeyboardKey.equal,
1081 0x00000019: PhysicalKeyboardKey.digit9,
1082 0x0000001a: PhysicalKeyboardKey.digit7,
1083 0x0000001b: PhysicalKeyboardKey.minus,
1084 0x0000001c: PhysicalKeyboardKey.digit8,
1085 0x0000001d: PhysicalKeyboardKey.digit0,
1086 0x0000001e: PhysicalKeyboardKey.bracketRight,
1087 0x0000001f: PhysicalKeyboardKey.keyO,
1088 0x00000020: PhysicalKeyboardKey.keyU,
1089 0x00000021: PhysicalKeyboardKey.bracketLeft,
1090 0x00000022: PhysicalKeyboardKey.keyI,
1091 0x00000023: PhysicalKeyboardKey.keyP,
1092 0x00000024: PhysicalKeyboardKey.enter,
1093 0x00000025: PhysicalKeyboardKey.keyL,
1094 0x00000026: PhysicalKeyboardKey.keyJ,
1095 0x00000027: PhysicalKeyboardKey.quote,
1096 0x00000028: PhysicalKeyboardKey.keyK,
1097 0x00000029: PhysicalKeyboardKey.semicolon,
1098 0x0000002a: PhysicalKeyboardKey.backslash,
1099 0x0000002b: PhysicalKeyboardKey.comma,
1100 0x0000002c: PhysicalKeyboardKey.slash,
1101 0x0000002d: PhysicalKeyboardKey.keyN,
1102 0x0000002e: PhysicalKeyboardKey.keyM,
1103 0x0000002f: PhysicalKeyboardKey.period,
1104 0x00000030: PhysicalKeyboardKey.tab,
1105 0x00000031: PhysicalKeyboardKey.space,
1106 0x00000032: PhysicalKeyboardKey.backquote,
1107 0x00000033: PhysicalKeyboardKey.backspace,
1108 0x00000035: PhysicalKeyboardKey.escape,
1109 0x00000036: PhysicalKeyboardKey.metaRight,
1110 0x00000037: PhysicalKeyboardKey.metaLeft,
1111 0x00000038: PhysicalKeyboardKey.shiftLeft,
1112 0x00000039: PhysicalKeyboardKey.capsLock,
1113 0x0000003a: PhysicalKeyboardKey.altLeft,
1114 0x0000003b: PhysicalKeyboardKey.controlLeft,
1115 0x0000003c: PhysicalKeyboardKey.shiftRight,
1116 0x0000003d: PhysicalKeyboardKey.altRight,
1117 0x0000003e: PhysicalKeyboardKey.controlRight,
1118 0x0000003f: PhysicalKeyboardKey.fn,
1119 0x00000040: PhysicalKeyboardKey.f17,
1120 0x00000041: PhysicalKeyboardKey.numpadDecimal,
1121 0x00000043: PhysicalKeyboardKey.numpadMultiply,
1122 0x00000045: PhysicalKeyboardKey.numpadAdd,
1123 0x00000047: PhysicalKeyboardKey.numLock,
1124 0x00000048: PhysicalKeyboardKey.audioVolumeUp,
1125 0x00000049: PhysicalKeyboardKey.audioVolumeDown,
1126 0x0000004a: PhysicalKeyboardKey.audioVolumeMute,
1127 0x0000004b: PhysicalKeyboardKey.numpadDivide,
1128 0x0000004c: PhysicalKeyboardKey.numpadEnter,
1129 0x0000004e: PhysicalKeyboardKey.numpadSubtract,
1130 0x0000004f: PhysicalKeyboardKey.f18,
1131 0x00000050: PhysicalKeyboardKey.f19,
1132 0x00000051: PhysicalKeyboardKey.numpadEqual,
1133 0x00000052: PhysicalKeyboardKey.numpad0,
1134 0x00000053: PhysicalKeyboardKey.numpad1,
1135 0x00000054: PhysicalKeyboardKey.numpad2,
1136 0x00000055: PhysicalKeyboardKey.numpad3,
1137 0x00000056: PhysicalKeyboardKey.numpad4,
1138 0x00000057: PhysicalKeyboardKey.numpad5,
1139 0x00000058: PhysicalKeyboardKey.numpad6,
1140 0x00000059: PhysicalKeyboardKey.numpad7,
1141 0x0000005a: PhysicalKeyboardKey.f20,
1142 0x0000005b: PhysicalKeyboardKey.numpad8,
1143 0x0000005c: PhysicalKeyboardKey.numpad9,
1144 0x0000005d: PhysicalKeyboardKey.intlYen,
1145 0x0000005e: PhysicalKeyboardKey.intlRo,
1146 0x0000005f: PhysicalKeyboardKey.numpadComma,
1147 0x00000060: PhysicalKeyboardKey.f5,
1148 0x00000061: PhysicalKeyboardKey.f6,
1149 0x00000062: PhysicalKeyboardKey.f7,
1150 0x00000063: PhysicalKeyboardKey.f3,
1151 0x00000064: PhysicalKeyboardKey.f8,
1152 0x00000065: PhysicalKeyboardKey.f9,
1153 0x00000066: PhysicalKeyboardKey.lang2,
1154 0x00000067: PhysicalKeyboardKey.f11,
1155 0x00000068: PhysicalKeyboardKey.lang1,
1156 0x00000069: PhysicalKeyboardKey.f13,
1157 0x0000006a: PhysicalKeyboardKey.f16,
1158 0x0000006b: PhysicalKeyboardKey.f14,
1159 0x0000006d: PhysicalKeyboardKey.f10,
1160 0x0000006e: PhysicalKeyboardKey.contextMenu,
1161 0x0000006f: PhysicalKeyboardKey.f12,
1162 0x00000071: PhysicalKeyboardKey.f15,
1163 0x00000072: PhysicalKeyboardKey.insert,
1164 0x00000073: PhysicalKeyboardKey.home,
1165 0x00000074: PhysicalKeyboardKey.pageUp,
1166 0x00000075: PhysicalKeyboardKey.delete,
1167 0x00000076: PhysicalKeyboardKey.f4,
1168 0x00000077: PhysicalKeyboardKey.end,
1169 0x00000078: PhysicalKeyboardKey.f2,
1170 0x00000079: PhysicalKeyboardKey.pageDown,
1171 0x0000007a: PhysicalKeyboardKey.f1,
1172 0x0000007b: PhysicalKeyboardKey.arrowLeft,
1173 0x0000007c: PhysicalKeyboardKey.arrowRight,
1174 0x0000007d: PhysicalKeyboardKey.arrowDown,
1175 0x0000007e: PhysicalKeyboardKey.arrowUp,
1176};
1177
1178/// A map of macOS key codes which have printable representations, but appear
1179/// on the number pad. Used to provide different key objects for keys like
1180/// KEY_EQUALS and NUMPAD_EQUALS.
1181const Map<int, LogicalKeyboardKey> kMacOsNumPadMap = <int, LogicalKeyboardKey>{
1182 0x00000041: LogicalKeyboardKey.numpadDecimal,
1183 0x00000043: LogicalKeyboardKey.numpadMultiply,
1184 0x00000045: LogicalKeyboardKey.numpadAdd,
1185 0x0000004b: LogicalKeyboardKey.numpadDivide,
1186 0x0000004e: LogicalKeyboardKey.numpadSubtract,
1187 0x00000051: LogicalKeyboardKey.numpadEqual,
1188 0x00000052: LogicalKeyboardKey.numpad0,
1189 0x00000053: LogicalKeyboardKey.numpad1,
1190 0x00000054: LogicalKeyboardKey.numpad2,
1191 0x00000055: LogicalKeyboardKey.numpad3,
1192 0x00000056: LogicalKeyboardKey.numpad4,
1193 0x00000057: LogicalKeyboardKey.numpad5,
1194 0x00000058: LogicalKeyboardKey.numpad6,
1195 0x00000059: LogicalKeyboardKey.numpad7,
1196 0x0000005b: LogicalKeyboardKey.numpad8,
1197 0x0000005c: LogicalKeyboardKey.numpad9,
1198 0x0000005f: LogicalKeyboardKey.numpadComma,
1199};
1200
1201/// A map of macOS key codes which are numbered function keys, so that they
1202/// can be excluded when asking "is the Fn modifier down?".
1203const Map<int, LogicalKeyboardKey> kMacOsFunctionKeyMap = <int, LogicalKeyboardKey>{
1204 0x00000040: LogicalKeyboardKey.f17,
1205 0x0000004f: LogicalKeyboardKey.f18,
1206 0x00000050: LogicalKeyboardKey.f19,
1207 0x0000005a: LogicalKeyboardKey.f20,
1208 0x00000060: LogicalKeyboardKey.f5,
1209 0x00000061: LogicalKeyboardKey.f6,
1210 0x00000062: LogicalKeyboardKey.f7,
1211 0x00000063: LogicalKeyboardKey.f3,
1212 0x00000064: LogicalKeyboardKey.f8,
1213 0x00000065: LogicalKeyboardKey.f9,
1214 0x00000067: LogicalKeyboardKey.f11,
1215 0x00000069: LogicalKeyboardKey.f13,
1216 0x0000006a: LogicalKeyboardKey.f16,
1217 0x0000006b: LogicalKeyboardKey.f14,
1218 0x0000006d: LogicalKeyboardKey.f10,
1219 0x0000006f: LogicalKeyboardKey.f12,
1220 0x00000071: LogicalKeyboardKey.f15,
1221 0x00000076: LogicalKeyboardKey.f4,
1222 0x00000078: LogicalKeyboardKey.f2,
1223 0x0000007a: LogicalKeyboardKey.f1,
1224};
1225
1226/// A map of macOS key codes presenting [LogicalKeyboardKey].
1227///
1228/// Logical key codes are not available in macOS key events. Most of the logical keys
1229/// are derived from its `characterIgnoringModifiers`, but those keys that don't
1230/// have a character representation will be derived from their key codes using
1231/// this map.
1232const Map<int, LogicalKeyboardKey> kMacOsToLogicalKey = <int, LogicalKeyboardKey>{
1233 36: LogicalKeyboardKey.enter,
1234 48: LogicalKeyboardKey.tab,
1235 51: LogicalKeyboardKey.backspace,
1236 53: LogicalKeyboardKey.escape,
1237 54: LogicalKeyboardKey.metaRight,
1238 55: LogicalKeyboardKey.metaLeft,
1239 56: LogicalKeyboardKey.shiftLeft,
1240 57: LogicalKeyboardKey.capsLock,
1241 58: LogicalKeyboardKey.altLeft,
1242 59: LogicalKeyboardKey.controlLeft,
1243 60: LogicalKeyboardKey.shiftRight,
1244 61: LogicalKeyboardKey.altRight,
1245 62: LogicalKeyboardKey.controlRight,
1246 63: LogicalKeyboardKey.fn,
1247 64: LogicalKeyboardKey.f17,
1248 65: LogicalKeyboardKey.numpadDecimal,
1249 67: LogicalKeyboardKey.numpadMultiply,
1250 69: LogicalKeyboardKey.numpadAdd,
1251 71: LogicalKeyboardKey.numLock,
1252 72: LogicalKeyboardKey.audioVolumeUp,
1253 73: LogicalKeyboardKey.audioVolumeDown,
1254 74: LogicalKeyboardKey.audioVolumeMute,
1255 75: LogicalKeyboardKey.numpadDivide,
1256 76: LogicalKeyboardKey.numpadEnter,
1257 78: LogicalKeyboardKey.numpadSubtract,
1258 79: LogicalKeyboardKey.f18,
1259 80: LogicalKeyboardKey.f19,
1260 81: LogicalKeyboardKey.numpadEqual,
1261 82: LogicalKeyboardKey.numpad0,
1262 83: LogicalKeyboardKey.numpad1,
1263 84: LogicalKeyboardKey.numpad2,
1264 85: LogicalKeyboardKey.numpad3,
1265 86: LogicalKeyboardKey.numpad4,
1266 87: LogicalKeyboardKey.numpad5,
1267 88: LogicalKeyboardKey.numpad6,
1268 89: LogicalKeyboardKey.numpad7,
1269 90: LogicalKeyboardKey.f20,
1270 91: LogicalKeyboardKey.numpad8,
1271 92: LogicalKeyboardKey.numpad9,
1272 93: LogicalKeyboardKey.intlYen,
1273 94: LogicalKeyboardKey.intlRo,
1274 95: LogicalKeyboardKey.numpadComma,
1275 96: LogicalKeyboardKey.f5,
1276 97: LogicalKeyboardKey.f6,
1277 98: LogicalKeyboardKey.f7,
1278 99: LogicalKeyboardKey.f3,
1279 100: LogicalKeyboardKey.f8,
1280 101: LogicalKeyboardKey.f9,
1281 102: LogicalKeyboardKey.lang2,
1282 103: LogicalKeyboardKey.f11,
1283 104: LogicalKeyboardKey.lang1,
1284 105: LogicalKeyboardKey.f13,
1285 106: LogicalKeyboardKey.f16,
1286 107: LogicalKeyboardKey.f14,
1287 109: LogicalKeyboardKey.f10,
1288 110: LogicalKeyboardKey.contextMenu,
1289 111: LogicalKeyboardKey.f12,
1290 113: LogicalKeyboardKey.f15,
1291 114: LogicalKeyboardKey.insert,
1292 115: LogicalKeyboardKey.home,
1293 116: LogicalKeyboardKey.pageUp,
1294 117: LogicalKeyboardKey.delete,
1295 118: LogicalKeyboardKey.f4,
1296 119: LogicalKeyboardKey.end,
1297 120: LogicalKeyboardKey.f2,
1298 121: LogicalKeyboardKey.pageDown,
1299 122: LogicalKeyboardKey.f1,
1300 123: LogicalKeyboardKey.arrowLeft,
1301 124: LogicalKeyboardKey.arrowRight,
1302 125: LogicalKeyboardKey.arrowDown,
1303 126: LogicalKeyboardKey.arrowUp,
1304};
1305
1306/// Maps iOS-specific key code values representing [PhysicalKeyboardKey].
1307///
1308/// iOS doesn't provide a scan code, but a virtual keycode to represent a physical key.
1309const Map<int, PhysicalKeyboardKey> kIosToPhysicalKey = <int, PhysicalKeyboardKey>{
1310 0x00000000: PhysicalKeyboardKey.usbReserved,
1311 0x00000001: PhysicalKeyboardKey.usbErrorRollOver,
1312 0x00000002: PhysicalKeyboardKey.usbPostFail,
1313 0x00000003: PhysicalKeyboardKey.usbErrorUndefined,
1314 0x00000004: PhysicalKeyboardKey.keyA,
1315 0x00000005: PhysicalKeyboardKey.keyB,
1316 0x00000006: PhysicalKeyboardKey.keyC,
1317 0x00000007: PhysicalKeyboardKey.keyD,
1318 0x00000008: PhysicalKeyboardKey.keyE,
1319 0x00000009: PhysicalKeyboardKey.keyF,
1320 0x0000000a: PhysicalKeyboardKey.keyG,
1321 0x0000000b: PhysicalKeyboardKey.keyH,
1322 0x0000000c: PhysicalKeyboardKey.keyI,
1323 0x0000000d: PhysicalKeyboardKey.keyJ,
1324 0x0000000e: PhysicalKeyboardKey.keyK,
1325 0x0000000f: PhysicalKeyboardKey.keyL,
1326 0x00000010: PhysicalKeyboardKey.keyM,
1327 0x00000011: PhysicalKeyboardKey.keyN,
1328 0x00000012: PhysicalKeyboardKey.keyO,
1329 0x00000013: PhysicalKeyboardKey.keyP,
1330 0x00000014: PhysicalKeyboardKey.keyQ,
1331 0x00000015: PhysicalKeyboardKey.keyR,
1332 0x00000016: PhysicalKeyboardKey.keyS,
1333 0x00000017: PhysicalKeyboardKey.keyT,
1334 0x00000018: PhysicalKeyboardKey.keyU,
1335 0x00000019: PhysicalKeyboardKey.keyV,
1336 0x0000001a: PhysicalKeyboardKey.keyW,
1337 0x0000001b: PhysicalKeyboardKey.keyX,
1338 0x0000001c: PhysicalKeyboardKey.keyY,
1339 0x0000001d: PhysicalKeyboardKey.keyZ,
1340 0x0000001e: PhysicalKeyboardKey.digit1,
1341 0x0000001f: PhysicalKeyboardKey.digit2,
1342 0x00000020: PhysicalKeyboardKey.digit3,
1343 0x00000021: PhysicalKeyboardKey.digit4,
1344 0x00000022: PhysicalKeyboardKey.digit5,
1345 0x00000023: PhysicalKeyboardKey.digit6,
1346 0x00000024: PhysicalKeyboardKey.digit7,
1347 0x00000025: PhysicalKeyboardKey.digit8,
1348 0x00000026: PhysicalKeyboardKey.digit9,
1349 0x00000027: PhysicalKeyboardKey.digit0,
1350 0x00000028: PhysicalKeyboardKey.enter,
1351 0x00000029: PhysicalKeyboardKey.escape,
1352 0x0000002a: PhysicalKeyboardKey.backspace,
1353 0x0000002b: PhysicalKeyboardKey.tab,
1354 0x0000002c: PhysicalKeyboardKey.space,
1355 0x0000002d: PhysicalKeyboardKey.minus,
1356 0x0000002e: PhysicalKeyboardKey.equal,
1357 0x0000002f: PhysicalKeyboardKey.bracketLeft,
1358 0x00000030: PhysicalKeyboardKey.bracketRight,
1359 0x00000031: PhysicalKeyboardKey.backslash,
1360 0x00000033: PhysicalKeyboardKey.semicolon,
1361 0x00000034: PhysicalKeyboardKey.quote,
1362 0x00000035: PhysicalKeyboardKey.backquote,
1363 0x00000036: PhysicalKeyboardKey.comma,
1364 0x00000037: PhysicalKeyboardKey.period,
1365 0x00000038: PhysicalKeyboardKey.slash,
1366 0x00000039: PhysicalKeyboardKey.capsLock,
1367 0x0000003a: PhysicalKeyboardKey.f1,
1368 0x0000003b: PhysicalKeyboardKey.f2,
1369 0x0000003c: PhysicalKeyboardKey.f3,
1370 0x0000003d: PhysicalKeyboardKey.f4,
1371 0x0000003e: PhysicalKeyboardKey.f5,
1372 0x0000003f: PhysicalKeyboardKey.f6,
1373 0x00000040: PhysicalKeyboardKey.f7,
1374 0x00000041: PhysicalKeyboardKey.f8,
1375 0x00000042: PhysicalKeyboardKey.f9,
1376 0x00000043: PhysicalKeyboardKey.f10,
1377 0x00000044: PhysicalKeyboardKey.f11,
1378 0x00000045: PhysicalKeyboardKey.f12,
1379 0x00000046: PhysicalKeyboardKey.printScreen,
1380 0x00000047: PhysicalKeyboardKey.scrollLock,
1381 0x00000048: PhysicalKeyboardKey.pause,
1382 0x00000049: PhysicalKeyboardKey.insert,
1383 0x0000004a: PhysicalKeyboardKey.home,
1384 0x0000004b: PhysicalKeyboardKey.pageUp,
1385 0x0000004c: PhysicalKeyboardKey.delete,
1386 0x0000004d: PhysicalKeyboardKey.end,
1387 0x0000004e: PhysicalKeyboardKey.pageDown,
1388 0x0000004f: PhysicalKeyboardKey.arrowRight,
1389 0x00000050: PhysicalKeyboardKey.arrowLeft,
1390 0x00000051: PhysicalKeyboardKey.arrowDown,
1391 0x00000052: PhysicalKeyboardKey.arrowUp,
1392 0x00000053: PhysicalKeyboardKey.numLock,
1393 0x00000054: PhysicalKeyboardKey.numpadDivide,
1394 0x00000055: PhysicalKeyboardKey.numpadMultiply,
1395 0x00000056: PhysicalKeyboardKey.numpadSubtract,
1396 0x00000057: PhysicalKeyboardKey.numpadAdd,
1397 0x00000058: PhysicalKeyboardKey.numpadEnter,
1398 0x00000059: PhysicalKeyboardKey.numpad1,
1399 0x0000005a: PhysicalKeyboardKey.numpad2,
1400 0x0000005b: PhysicalKeyboardKey.numpad3,
1401 0x0000005c: PhysicalKeyboardKey.numpad4,
1402 0x0000005d: PhysicalKeyboardKey.numpad5,
1403 0x0000005e: PhysicalKeyboardKey.numpad6,
1404 0x0000005f: PhysicalKeyboardKey.numpad7,
1405 0x00000060: PhysicalKeyboardKey.numpad8,
1406 0x00000061: PhysicalKeyboardKey.numpad9,
1407 0x00000062: PhysicalKeyboardKey.numpad0,
1408 0x00000063: PhysicalKeyboardKey.numpadDecimal,
1409 0x00000064: PhysicalKeyboardKey.intlBackslash,
1410 0x00000065: PhysicalKeyboardKey.contextMenu,
1411 0x00000066: PhysicalKeyboardKey.power,
1412 0x00000067: PhysicalKeyboardKey.numpadEqual,
1413 0x00000068: PhysicalKeyboardKey.f13,
1414 0x00000069: PhysicalKeyboardKey.f14,
1415 0x0000006a: PhysicalKeyboardKey.f15,
1416 0x0000006b: PhysicalKeyboardKey.f16,
1417 0x0000006c: PhysicalKeyboardKey.f17,
1418 0x0000006d: PhysicalKeyboardKey.f18,
1419 0x0000006e: PhysicalKeyboardKey.f19,
1420 0x0000006f: PhysicalKeyboardKey.f20,
1421 0x00000070: PhysicalKeyboardKey.f21,
1422 0x00000071: PhysicalKeyboardKey.f22,
1423 0x00000072: PhysicalKeyboardKey.f23,
1424 0x00000073: PhysicalKeyboardKey.f24,
1425 0x00000074: PhysicalKeyboardKey.open,
1426 0x00000075: PhysicalKeyboardKey.help,
1427 0x00000077: PhysicalKeyboardKey.select,
1428 0x00000079: PhysicalKeyboardKey.again,
1429 0x0000007a: PhysicalKeyboardKey.undo,
1430 0x0000007b: PhysicalKeyboardKey.cut,
1431 0x0000007c: PhysicalKeyboardKey.copy,
1432 0x0000007d: PhysicalKeyboardKey.paste,
1433 0x0000007e: PhysicalKeyboardKey.find,
1434 0x0000007f: PhysicalKeyboardKey.audioVolumeMute,
1435 0x00000080: PhysicalKeyboardKey.audioVolumeUp,
1436 0x00000081: PhysicalKeyboardKey.audioVolumeDown,
1437 0x00000085: PhysicalKeyboardKey.numpadComma,
1438 0x00000087: PhysicalKeyboardKey.intlRo,
1439 0x00000088: PhysicalKeyboardKey.kanaMode,
1440 0x00000089: PhysicalKeyboardKey.intlYen,
1441 0x0000008a: PhysicalKeyboardKey.convert,
1442 0x0000008b: PhysicalKeyboardKey.nonConvert,
1443 0x00000090: PhysicalKeyboardKey.lang1,
1444 0x00000091: PhysicalKeyboardKey.lang2,
1445 0x00000092: PhysicalKeyboardKey.lang3,
1446 0x00000093: PhysicalKeyboardKey.lang4,
1447 0x00000094: PhysicalKeyboardKey.lang5,
1448 0x0000009b: PhysicalKeyboardKey.abort,
1449 0x000000a3: PhysicalKeyboardKey.props,
1450 0x000000b6: PhysicalKeyboardKey.numpadParenLeft,
1451 0x000000b7: PhysicalKeyboardKey.numpadParenRight,
1452 0x000000bb: PhysicalKeyboardKey.numpadBackspace,
1453 0x000000d0: PhysicalKeyboardKey.numpadMemoryStore,
1454 0x000000d1: PhysicalKeyboardKey.numpadMemoryRecall,
1455 0x000000d2: PhysicalKeyboardKey.numpadMemoryClear,
1456 0x000000d3: PhysicalKeyboardKey.numpadMemoryAdd,
1457 0x000000d4: PhysicalKeyboardKey.numpadMemorySubtract,
1458 0x000000d7: PhysicalKeyboardKey.numpadSignChange,
1459 0x000000d8: PhysicalKeyboardKey.numpadClear,
1460 0x000000d9: PhysicalKeyboardKey.numpadClearEntry,
1461 0x000000e0: PhysicalKeyboardKey.controlLeft,
1462 0x000000e1: PhysicalKeyboardKey.shiftLeft,
1463 0x000000e2: PhysicalKeyboardKey.altLeft,
1464 0x000000e3: PhysicalKeyboardKey.metaLeft,
1465 0x000000e4: PhysicalKeyboardKey.controlRight,
1466 0x000000e5: PhysicalKeyboardKey.shiftRight,
1467 0x000000e6: PhysicalKeyboardKey.altRight,
1468 0x000000e7: PhysicalKeyboardKey.metaRight,
1469};
1470
1471/// Maps iOS specific string values of nonvisible keys to logical keys
1472///
1473/// Some unprintable keys on iOS has literal names on their key label, such as
1474/// "UIKeyInputEscape". See:
1475/// https://developer.apple.com/documentation/uikit/uikeycommand/input_strings_for_special_keys?language=objc
1476const Map<String, LogicalKeyboardKey> kIosSpecialLogicalMap = <String, LogicalKeyboardKey>{
1477 'UIKeyInputEscape': LogicalKeyboardKey.escape,
1478 'UIKeyInputF1': LogicalKeyboardKey.f1,
1479 'UIKeyInputF2': LogicalKeyboardKey.f2,
1480 'UIKeyInputF3': LogicalKeyboardKey.f3,
1481 'UIKeyInputF4': LogicalKeyboardKey.f4,
1482 'UIKeyInputF5': LogicalKeyboardKey.f5,
1483 'UIKeyInputF6': LogicalKeyboardKey.f6,
1484 'UIKeyInputF7': LogicalKeyboardKey.f7,
1485 'UIKeyInputF8': LogicalKeyboardKey.f8,
1486 'UIKeyInputF9': LogicalKeyboardKey.f9,
1487 'UIKeyInputF10': LogicalKeyboardKey.f10,
1488 'UIKeyInputF11': LogicalKeyboardKey.f11,
1489 'UIKeyInputF12': LogicalKeyboardKey.f12,
1490 'UIKeyInputUpArrow': LogicalKeyboardKey.arrowUp,
1491 'UIKeyInputDownArrow': LogicalKeyboardKey.arrowDown,
1492 'UIKeyInputLeftArrow': LogicalKeyboardKey.arrowLeft,
1493 'UIKeyInputRightArrow': LogicalKeyboardKey.arrowRight,
1494 'UIKeyInputHome': LogicalKeyboardKey.home,
1495 'UIKeyInputEnd': LogicalKeyboardKey.enter,
1496 'UIKeyInputPageUp': LogicalKeyboardKey.pageUp,
1497 'UIKeyInputPageDown': LogicalKeyboardKey.pageDown,
1498};
1499
1500/// A map of iOS key codes which have printable representations, but appear
1501/// on the number pad. Used to provide different key objects for keys like
1502/// KEY_EQUALS and NUMPAD_EQUALS.
1503const Map<int, LogicalKeyboardKey> kIosNumPadMap = <int, LogicalKeyboardKey>{
1504 0x00000054: LogicalKeyboardKey.numpadDivide,
1505 0x00000055: LogicalKeyboardKey.numpadMultiply,
1506 0x00000056: LogicalKeyboardKey.numpadSubtract,
1507 0x00000057: LogicalKeyboardKey.numpadAdd,
1508 0x00000059: LogicalKeyboardKey.numpad1,
1509 0x0000005a: LogicalKeyboardKey.numpad2,
1510 0x0000005b: LogicalKeyboardKey.numpad3,
1511 0x0000005c: LogicalKeyboardKey.numpad4,
1512 0x0000005d: LogicalKeyboardKey.numpad5,
1513 0x0000005e: LogicalKeyboardKey.numpad6,
1514 0x0000005f: LogicalKeyboardKey.numpad7,
1515 0x00000060: LogicalKeyboardKey.numpad8,
1516 0x00000061: LogicalKeyboardKey.numpad9,
1517 0x00000062: LogicalKeyboardKey.numpad0,
1518 0x00000063: LogicalKeyboardKey.numpadDecimal,
1519 0x00000067: LogicalKeyboardKey.numpadEqual,
1520 0x00000085: LogicalKeyboardKey.numpadComma,
1521 0x000000b6: LogicalKeyboardKey.numpadParenLeft,
1522 0x000000b7: LogicalKeyboardKey.numpadParenRight,
1523};
1524
1525/// A map of iOS key codes presenting [LogicalKeyboardKey].
1526///
1527/// Logical key codes are not available in iOS key events. Most of the logical keys
1528/// are derived from its `characterIgnoringModifiers`, but those keys that don't
1529/// have a character representation will be derived from their key codes using
1530/// this map.
1531const Map<int, LogicalKeyboardKey> kIosToLogicalKey = <int, LogicalKeyboardKey>{
1532 40: LogicalKeyboardKey.enter,
1533 41: LogicalKeyboardKey.escape,
1534 42: LogicalKeyboardKey.backspace,
1535 43: LogicalKeyboardKey.tab,
1536 57: LogicalKeyboardKey.capsLock,
1537 58: LogicalKeyboardKey.f1,
1538 59: LogicalKeyboardKey.f2,
1539 60: LogicalKeyboardKey.f3,
1540 61: LogicalKeyboardKey.f4,
1541 62: LogicalKeyboardKey.f5,
1542 63: LogicalKeyboardKey.f6,
1543 64: LogicalKeyboardKey.f7,
1544 65: LogicalKeyboardKey.f8,
1545 66: LogicalKeyboardKey.f9,
1546 67: LogicalKeyboardKey.f10,
1547 68: LogicalKeyboardKey.f11,
1548 69: LogicalKeyboardKey.f12,
1549 73: LogicalKeyboardKey.insert,
1550 74: LogicalKeyboardKey.home,
1551 75: LogicalKeyboardKey.pageUp,
1552 76: LogicalKeyboardKey.delete,
1553 77: LogicalKeyboardKey.end,
1554 78: LogicalKeyboardKey.pageDown,
1555 79: LogicalKeyboardKey.arrowRight,
1556 80: LogicalKeyboardKey.arrowLeft,
1557 81: LogicalKeyboardKey.arrowDown,
1558 82: LogicalKeyboardKey.arrowUp,
1559 83: LogicalKeyboardKey.numLock,
1560 84: LogicalKeyboardKey.numpadDivide,
1561 85: LogicalKeyboardKey.numpadMultiply,
1562 86: LogicalKeyboardKey.numpadSubtract,
1563 87: LogicalKeyboardKey.numpadAdd,
1564 88: LogicalKeyboardKey.numpadEnter,
1565 89: LogicalKeyboardKey.numpad1,
1566 90: LogicalKeyboardKey.numpad2,
1567 91: LogicalKeyboardKey.numpad3,
1568 92: LogicalKeyboardKey.numpad4,
1569 93: LogicalKeyboardKey.numpad5,
1570 94: LogicalKeyboardKey.numpad6,
1571 95: LogicalKeyboardKey.numpad7,
1572 96: LogicalKeyboardKey.numpad8,
1573 97: LogicalKeyboardKey.numpad9,
1574 98: LogicalKeyboardKey.numpad0,
1575 99: LogicalKeyboardKey.numpadDecimal,
1576 101: LogicalKeyboardKey.contextMenu,
1577 103: LogicalKeyboardKey.numpadEqual,
1578 104: LogicalKeyboardKey.f13,
1579 105: LogicalKeyboardKey.f14,
1580 106: LogicalKeyboardKey.f15,
1581 107: LogicalKeyboardKey.f16,
1582 108: LogicalKeyboardKey.f17,
1583 109: LogicalKeyboardKey.f18,
1584 110: LogicalKeyboardKey.f19,
1585 111: LogicalKeyboardKey.f20,
1586 127: LogicalKeyboardKey.audioVolumeMute,
1587 128: LogicalKeyboardKey.audioVolumeUp,
1588 129: LogicalKeyboardKey.audioVolumeDown,
1589 133: LogicalKeyboardKey.numpadComma,
1590 135: LogicalKeyboardKey.intlRo,
1591 137: LogicalKeyboardKey.intlYen,
1592 144: LogicalKeyboardKey.lang1,
1593 145: LogicalKeyboardKey.lang2,
1594 146: LogicalKeyboardKey.lang3,
1595 147: LogicalKeyboardKey.lang4,
1596 148: LogicalKeyboardKey.lang5,
1597 224: LogicalKeyboardKey.controlLeft,
1598 225: LogicalKeyboardKey.shiftLeft,
1599 226: LogicalKeyboardKey.altLeft,
1600 227: LogicalKeyboardKey.metaLeft,
1601 228: LogicalKeyboardKey.controlRight,
1602 229: LogicalKeyboardKey.shiftRight,
1603 230: LogicalKeyboardKey.altRight,
1604 231: LogicalKeyboardKey.metaRight,
1605};
1606
1607/// Maps GLFW-specific key codes to the matching [LogicalKeyboardKey].
1608const Map<int, LogicalKeyboardKey> kGlfwToLogicalKey = <int, LogicalKeyboardKey>{
1609 32: LogicalKeyboardKey.space,
1610 39: LogicalKeyboardKey.quote,
1611 44: LogicalKeyboardKey.comma,
1612 45: LogicalKeyboardKey.minus,
1613 46: LogicalKeyboardKey.period,
1614 47: LogicalKeyboardKey.slash,
1615 48: LogicalKeyboardKey.digit0,
1616 49: LogicalKeyboardKey.digit1,
1617 50: LogicalKeyboardKey.digit2,
1618 51: LogicalKeyboardKey.digit3,
1619 52: LogicalKeyboardKey.digit4,
1620 53: LogicalKeyboardKey.digit5,
1621 54: LogicalKeyboardKey.digit6,
1622 55: LogicalKeyboardKey.digit7,
1623 56: LogicalKeyboardKey.digit8,
1624 57: LogicalKeyboardKey.digit9,
1625 59: LogicalKeyboardKey.semicolon,
1626 61: LogicalKeyboardKey.equal,
1627 65: LogicalKeyboardKey.keyA,
1628 66: LogicalKeyboardKey.keyB,
1629 67: LogicalKeyboardKey.keyC,
1630 68: LogicalKeyboardKey.keyD,
1631 69: LogicalKeyboardKey.keyE,
1632 70: LogicalKeyboardKey.keyF,
1633 71: LogicalKeyboardKey.keyG,
1634 72: LogicalKeyboardKey.keyH,
1635 73: LogicalKeyboardKey.keyI,
1636 74: LogicalKeyboardKey.keyJ,
1637 75: LogicalKeyboardKey.keyK,
1638 76: LogicalKeyboardKey.keyL,
1639 77: LogicalKeyboardKey.keyM,
1640 78: LogicalKeyboardKey.keyN,
1641 79: LogicalKeyboardKey.keyO,
1642 80: LogicalKeyboardKey.keyP,
1643 81: LogicalKeyboardKey.keyQ,
1644 82: LogicalKeyboardKey.keyR,
1645 83: LogicalKeyboardKey.keyS,
1646 84: LogicalKeyboardKey.keyT,
1647 85: LogicalKeyboardKey.keyU,
1648 86: LogicalKeyboardKey.keyV,
1649 87: LogicalKeyboardKey.keyW,
1650 88: LogicalKeyboardKey.keyX,
1651 89: LogicalKeyboardKey.keyY,
1652 90: LogicalKeyboardKey.keyZ,
1653 91: LogicalKeyboardKey.bracketLeft,
1654 92: LogicalKeyboardKey.backslash,
1655 93: LogicalKeyboardKey.bracketRight,
1656 96: LogicalKeyboardKey.backquote,
1657 256: LogicalKeyboardKey.escape,
1658 257: LogicalKeyboardKey.enter,
1659 258: LogicalKeyboardKey.tab,
1660 259: LogicalKeyboardKey.backspace,
1661 260: LogicalKeyboardKey.insert,
1662 261: LogicalKeyboardKey.delete,
1663 262: LogicalKeyboardKey.arrowRight,
1664 263: LogicalKeyboardKey.arrowLeft,
1665 264: LogicalKeyboardKey.arrowDown,
1666 265: LogicalKeyboardKey.arrowUp,
1667 266: LogicalKeyboardKey.pageUp,
1668 267: LogicalKeyboardKey.pageDown,
1669 268: LogicalKeyboardKey.home,
1670 269: LogicalKeyboardKey.end,
1671 280: LogicalKeyboardKey.capsLock,
1672 282: LogicalKeyboardKey.numLock,
1673 283: LogicalKeyboardKey.printScreen,
1674 284: LogicalKeyboardKey.pause,
1675 290: LogicalKeyboardKey.f1,
1676 291: LogicalKeyboardKey.f2,
1677 292: LogicalKeyboardKey.f3,
1678 293: LogicalKeyboardKey.f4,
1679 294: LogicalKeyboardKey.f5,
1680 295: LogicalKeyboardKey.f6,
1681 296: LogicalKeyboardKey.f7,
1682 297: LogicalKeyboardKey.f8,
1683 298: LogicalKeyboardKey.f9,
1684 299: LogicalKeyboardKey.f10,
1685 300: LogicalKeyboardKey.f11,
1686 301: LogicalKeyboardKey.f12,
1687 302: LogicalKeyboardKey.f13,
1688 303: LogicalKeyboardKey.f14,
1689 304: LogicalKeyboardKey.f15,
1690 305: LogicalKeyboardKey.f16,
1691 306: LogicalKeyboardKey.f17,
1692 307: LogicalKeyboardKey.f18,
1693 308: LogicalKeyboardKey.f19,
1694 309: LogicalKeyboardKey.f20,
1695 310: LogicalKeyboardKey.f21,
1696 311: LogicalKeyboardKey.f22,
1697 312: LogicalKeyboardKey.f23,
1698 320: LogicalKeyboardKey.numpad0,
1699 321: LogicalKeyboardKey.numpad1,
1700 322: LogicalKeyboardKey.numpad2,
1701 323: LogicalKeyboardKey.numpad3,
1702 324: LogicalKeyboardKey.numpad4,
1703 325: LogicalKeyboardKey.numpad5,
1704 326: LogicalKeyboardKey.numpad6,
1705 327: LogicalKeyboardKey.numpad7,
1706 328: LogicalKeyboardKey.numpad8,
1707 329: LogicalKeyboardKey.numpad9,
1708 330: LogicalKeyboardKey.numpadDecimal,
1709 331: LogicalKeyboardKey.numpadDivide,
1710 332: LogicalKeyboardKey.numpadMultiply,
1711 334: LogicalKeyboardKey.numpadAdd,
1712 335: LogicalKeyboardKey.numpadEnter,
1713 336: LogicalKeyboardKey.numpadEqual,
1714 340: LogicalKeyboardKey.shiftLeft,
1715 341: LogicalKeyboardKey.controlLeft,
1716 342: LogicalKeyboardKey.altLeft,
1717 343: LogicalKeyboardKey.metaLeft,
1718 344: LogicalKeyboardKey.shiftRight,
1719 345: LogicalKeyboardKey.controlRight,
1720 346: LogicalKeyboardKey.altRight,
1721 347: LogicalKeyboardKey.metaRight,
1722 348: LogicalKeyboardKey.contextMenu,
1723};
1724
1725/// A map of GLFW key codes which have printable representations, but appear
1726/// on the number pad. Used to provide different key objects for keys like
1727/// KEY_EQUALS and NUMPAD_EQUALS.
1728const Map<int, LogicalKeyboardKey> kGlfwNumpadMap = <int, LogicalKeyboardKey>{
1729 320: LogicalKeyboardKey.numpad0,
1730 321: LogicalKeyboardKey.numpad1,
1731 322: LogicalKeyboardKey.numpad2,
1732 323: LogicalKeyboardKey.numpad3,
1733 324: LogicalKeyboardKey.numpad4,
1734 325: LogicalKeyboardKey.numpad5,
1735 326: LogicalKeyboardKey.numpad6,
1736 327: LogicalKeyboardKey.numpad7,
1737 328: LogicalKeyboardKey.numpad8,
1738 329: LogicalKeyboardKey.numpad9,
1739 330: LogicalKeyboardKey.numpadDecimal,
1740 331: LogicalKeyboardKey.numpadDivide,
1741 332: LogicalKeyboardKey.numpadMultiply,
1742 334: LogicalKeyboardKey.numpadAdd,
1743 336: LogicalKeyboardKey.numpadEqual,
1744};
1745
1746/// Maps GTK-specific key codes to the matching [LogicalKeyboardKey].
1747const Map<int, LogicalKeyboardKey> kGtkToLogicalKey = <int, LogicalKeyboardKey>{
1748 165: LogicalKeyboardKey.intlYen,
1749 64774: LogicalKeyboardKey.eraseEof,
1750 64782: LogicalKeyboardKey.attn,
1751 64789: LogicalKeyboardKey.copy,
1752 64790: LogicalKeyboardKey.mediaPlay,
1753 64795: LogicalKeyboardKey.exSel,
1754 64797: LogicalKeyboardKey.printScreen,
1755 64798: LogicalKeyboardKey.enter,
1756 65027: LogicalKeyboardKey.altGraph,
1757 65032: LogicalKeyboardKey.groupNext,
1758 65034: LogicalKeyboardKey.groupPrevious,
1759 65036: LogicalKeyboardKey.groupFirst,
1760 65038: LogicalKeyboardKey.groupLast,
1761 65056: LogicalKeyboardKey.tab,
1762 65076: LogicalKeyboardKey.enter,
1763 65288: LogicalKeyboardKey.backspace,
1764 65289: LogicalKeyboardKey.tab,
1765 65291: LogicalKeyboardKey.clear,
1766 65293: LogicalKeyboardKey.enter,
1767 65299: LogicalKeyboardKey.pause,
1768 65300: LogicalKeyboardKey.scrollLock,
1769 65307: LogicalKeyboardKey.escape,
1770 65313: LogicalKeyboardKey.kanjiMode,
1771 65316: LogicalKeyboardKey.romaji,
1772 65317: LogicalKeyboardKey.hiragana,
1773 65318: LogicalKeyboardKey.katakana,
1774 65319: LogicalKeyboardKey.hiraganaKatakana,
1775 65320: LogicalKeyboardKey.zenkaku,
1776 65321: LogicalKeyboardKey.hankaku,
1777 65322: LogicalKeyboardKey.zenkakuHankaku,
1778 65327: LogicalKeyboardKey.eisu,
1779 65329: LogicalKeyboardKey.hangulMode,
1780 65332: LogicalKeyboardKey.hanjaMode,
1781 65335: LogicalKeyboardKey.codeInput,
1782 65340: LogicalKeyboardKey.singleCandidate,
1783 65342: LogicalKeyboardKey.previousCandidate,
1784 65360: LogicalKeyboardKey.home,
1785 65361: LogicalKeyboardKey.arrowLeft,
1786 65362: LogicalKeyboardKey.arrowUp,
1787 65363: LogicalKeyboardKey.arrowRight,
1788 65364: LogicalKeyboardKey.arrowDown,
1789 65365: LogicalKeyboardKey.pageUp,
1790 65366: LogicalKeyboardKey.pageDown,
1791 65367: LogicalKeyboardKey.end,
1792 65376: LogicalKeyboardKey.select,
1793 65377: LogicalKeyboardKey.print,
1794 65378: LogicalKeyboardKey.execute,
1795 65379: LogicalKeyboardKey.insert,
1796 65381: LogicalKeyboardKey.undo,
1797 65382: LogicalKeyboardKey.redo,
1798 65383: LogicalKeyboardKey.contextMenu,
1799 65384: LogicalKeyboardKey.find,
1800 65385: LogicalKeyboardKey.cancel,
1801 65386: LogicalKeyboardKey.help,
1802 65406: LogicalKeyboardKey.modeChange,
1803 65407: LogicalKeyboardKey.numLock,
1804 65408: LogicalKeyboardKey.space,
1805 65417: LogicalKeyboardKey.tab,
1806 65421: LogicalKeyboardKey.numpadEnter,
1807 65425: LogicalKeyboardKey.f1,
1808 65426: LogicalKeyboardKey.f2,
1809 65427: LogicalKeyboardKey.f3,
1810 65428: LogicalKeyboardKey.f4,
1811 65429: LogicalKeyboardKey.numpad7,
1812 65430: LogicalKeyboardKey.numpad4,
1813 65431: LogicalKeyboardKey.numpad8,
1814 65432: LogicalKeyboardKey.numpad6,
1815 65433: LogicalKeyboardKey.numpad2,
1816 65434: LogicalKeyboardKey.numpad9,
1817 65435: LogicalKeyboardKey.numpad3,
1818 65436: LogicalKeyboardKey.numpad1,
1819 65438: LogicalKeyboardKey.numpad0,
1820 65439: LogicalKeyboardKey.numpadDecimal,
1821 65450: LogicalKeyboardKey.numpadMultiply,
1822 65451: LogicalKeyboardKey.numpadAdd,
1823 65453: LogicalKeyboardKey.numpadSubtract,
1824 65454: LogicalKeyboardKey.period,
1825 65455: LogicalKeyboardKey.numpadDivide,
1826 65456: LogicalKeyboardKey.numpad0,
1827 65457: LogicalKeyboardKey.numpad1,
1828 65458: LogicalKeyboardKey.numpad2,
1829 65459: LogicalKeyboardKey.numpad3,
1830 65460: LogicalKeyboardKey.numpad4,
1831 65461: LogicalKeyboardKey.numpad5,
1832 65462: LogicalKeyboardKey.numpad6,
1833 65463: LogicalKeyboardKey.numpad7,
1834 65464: LogicalKeyboardKey.numpad8,
1835 65465: LogicalKeyboardKey.numpad9,
1836 65469: LogicalKeyboardKey.numpadEqual,
1837 65470: LogicalKeyboardKey.f1,
1838 65471: LogicalKeyboardKey.f2,
1839 65472: LogicalKeyboardKey.f3,
1840 65473: LogicalKeyboardKey.f4,
1841 65474: LogicalKeyboardKey.f5,
1842 65475: LogicalKeyboardKey.f6,
1843 65476: LogicalKeyboardKey.f7,
1844 65477: LogicalKeyboardKey.f8,
1845 65478: LogicalKeyboardKey.f9,
1846 65479: LogicalKeyboardKey.f10,
1847 65480: LogicalKeyboardKey.f11,
1848 65481: LogicalKeyboardKey.f12,
1849 65482: LogicalKeyboardKey.f13,
1850 65483: LogicalKeyboardKey.f14,
1851 65484: LogicalKeyboardKey.f15,
1852 65485: LogicalKeyboardKey.f16,
1853 65486: LogicalKeyboardKey.f17,
1854 65487: LogicalKeyboardKey.f18,
1855 65488: LogicalKeyboardKey.f19,
1856 65489: LogicalKeyboardKey.f20,
1857 65490: LogicalKeyboardKey.f21,
1858 65491: LogicalKeyboardKey.f22,
1859 65492: LogicalKeyboardKey.f23,
1860 65493: LogicalKeyboardKey.f24,
1861 65505: LogicalKeyboardKey.shiftLeft,
1862 65506: LogicalKeyboardKey.shiftRight,
1863 65507: LogicalKeyboardKey.controlLeft,
1864 65508: LogicalKeyboardKey.controlRight,
1865 65509: LogicalKeyboardKey.capsLock,
1866 65511: LogicalKeyboardKey.metaLeft,
1867 65512: LogicalKeyboardKey.metaRight,
1868 65513: LogicalKeyboardKey.altLeft,
1869 65514: LogicalKeyboardKey.altRight,
1870 65515: LogicalKeyboardKey.superKey,
1871 65516: LogicalKeyboardKey.superKey,
1872 65517: LogicalKeyboardKey.hyper,
1873 65518: LogicalKeyboardKey.hyper,
1874 65535: LogicalKeyboardKey.delete,
1875 269025026: LogicalKeyboardKey.brightnessUp,
1876 269025027: LogicalKeyboardKey.brightnessDown,
1877 269025040: LogicalKeyboardKey.standby,
1878 269025041: LogicalKeyboardKey.audioVolumeDown,
1879 269025042: LogicalKeyboardKey.audioVolumeMute,
1880 269025043: LogicalKeyboardKey.audioVolumeUp,
1881 269025044: LogicalKeyboardKey.mediaPlay,
1882 269025045: LogicalKeyboardKey.mediaStop,
1883 269025046: LogicalKeyboardKey.mediaTrackPrevious,
1884 269025047: LogicalKeyboardKey.mediaTrackNext,
1885 269025048: LogicalKeyboardKey.browserHome,
1886 269025049: LogicalKeyboardKey.launchMail,
1887 269025051: LogicalKeyboardKey.browserSearch,
1888 269025052: LogicalKeyboardKey.mediaRecord,
1889 269025056: LogicalKeyboardKey.launchCalendar,
1890 269025062: LogicalKeyboardKey.browserBack,
1891 269025063: LogicalKeyboardKey.browserForward,
1892 269025064: LogicalKeyboardKey.browserStop,
1893 269025065: LogicalKeyboardKey.browserRefresh,
1894 269025066: LogicalKeyboardKey.powerOff,
1895 269025067: LogicalKeyboardKey.wakeUp,
1896 269025068: LogicalKeyboardKey.eject,
1897 269025069: LogicalKeyboardKey.launchScreenSaver,
1898 269025071: LogicalKeyboardKey.sleep,
1899 269025072: LogicalKeyboardKey.browserFavorites,
1900 269025073: LogicalKeyboardKey.mediaPause,
1901 269025086: LogicalKeyboardKey.mediaRewind,
1902 269025110: LogicalKeyboardKey.close,
1903 269025111: LogicalKeyboardKey.copy,
1904 269025112: LogicalKeyboardKey.cut,
1905 269025121: LogicalKeyboardKey.logOff,
1906 269025128: LogicalKeyboardKey.newKey,
1907 269025131: LogicalKeyboardKey.open,
1908 269025133: LogicalKeyboardKey.paste,
1909 269025134: LogicalKeyboardKey.launchPhone,
1910 269025138: LogicalKeyboardKey.mailReply,
1911 269025143: LogicalKeyboardKey.save,
1912 269025147: LogicalKeyboardKey.mailSend,
1913 269025148: LogicalKeyboardKey.spellCheck,
1914 269025163: LogicalKeyboardKey.zoomIn,
1915 269025164: LogicalKeyboardKey.zoomOut,
1916 269025168: LogicalKeyboardKey.mailForward,
1917 269025175: LogicalKeyboardKey.mediaFastForward,
1918 269025191: LogicalKeyboardKey.suspend,
1919};
1920
1921/// A map of GTK key codes which have printable representations, but appear
1922/// on the number pad. Used to provide different key objects for keys like
1923/// KEY_EQUALS and NUMPAD_EQUALS.
1924const Map<int, LogicalKeyboardKey> kGtkNumpadMap = <int, LogicalKeyboardKey>{
1925 65429: LogicalKeyboardKey.numpad7,
1926 65430: LogicalKeyboardKey.numpad4,
1927 65431: LogicalKeyboardKey.numpad8,
1928 65432: LogicalKeyboardKey.numpad6,
1929 65433: LogicalKeyboardKey.numpad2,
1930 65434: LogicalKeyboardKey.numpad9,
1931 65435: LogicalKeyboardKey.numpad3,
1932 65436: LogicalKeyboardKey.numpad1,
1933 65438: LogicalKeyboardKey.numpad0,
1934 65439: LogicalKeyboardKey.numpadDecimal,
1935 65450: LogicalKeyboardKey.numpadMultiply,
1936 65451: LogicalKeyboardKey.numpadAdd,
1937 65453: LogicalKeyboardKey.numpadSubtract,
1938 65455: LogicalKeyboardKey.numpadDivide,
1939 65456: LogicalKeyboardKey.numpad0,
1940 65457: LogicalKeyboardKey.numpad1,
1941 65458: LogicalKeyboardKey.numpad2,
1942 65459: LogicalKeyboardKey.numpad3,
1943 65460: LogicalKeyboardKey.numpad4,
1944 65461: LogicalKeyboardKey.numpad5,
1945 65462: LogicalKeyboardKey.numpad6,
1946 65463: LogicalKeyboardKey.numpad7,
1947 65464: LogicalKeyboardKey.numpad8,
1948 65465: LogicalKeyboardKey.numpad9,
1949 65469: LogicalKeyboardKey.numpadEqual,
1950};
1951
1952/// Maps XKB specific key code values representing [PhysicalKeyboardKey].
1953const Map<int, PhysicalKeyboardKey> kLinuxToPhysicalKey = <int, PhysicalKeyboardKey>{
1954 0x00000009: PhysicalKeyboardKey.escape,
1955 0x0000000a: PhysicalKeyboardKey.digit1,
1956 0x0000000b: PhysicalKeyboardKey.digit2,
1957 0x0000000c: PhysicalKeyboardKey.digit3,
1958 0x0000000d: PhysicalKeyboardKey.digit4,
1959 0x0000000e: PhysicalKeyboardKey.digit5,
1960 0x0000000f: PhysicalKeyboardKey.digit6,
1961 0x00000010: PhysicalKeyboardKey.digit7,
1962 0x00000011: PhysicalKeyboardKey.digit8,
1963 0x00000012: PhysicalKeyboardKey.digit9,
1964 0x00000013: PhysicalKeyboardKey.digit0,
1965 0x00000014: PhysicalKeyboardKey.minus,
1966 0x00000015: PhysicalKeyboardKey.equal,
1967 0x00000016: PhysicalKeyboardKey.backspace,
1968 0x00000017: PhysicalKeyboardKey.tab,
1969 0x00000018: PhysicalKeyboardKey.keyQ,
1970 0x00000019: PhysicalKeyboardKey.keyW,
1971 0x0000001a: PhysicalKeyboardKey.keyE,
1972 0x0000001b: PhysicalKeyboardKey.keyR,
1973 0x0000001c: PhysicalKeyboardKey.keyT,
1974 0x0000001d: PhysicalKeyboardKey.keyY,
1975 0x0000001e: PhysicalKeyboardKey.keyU,
1976 0x0000001f: PhysicalKeyboardKey.keyI,
1977 0x00000020: PhysicalKeyboardKey.keyO,
1978 0x00000021: PhysicalKeyboardKey.keyP,
1979 0x00000022: PhysicalKeyboardKey.bracketLeft,
1980 0x00000023: PhysicalKeyboardKey.bracketRight,
1981 0x00000024: PhysicalKeyboardKey.enter,
1982 0x00000025: PhysicalKeyboardKey.controlLeft,
1983 0x00000026: PhysicalKeyboardKey.keyA,
1984 0x00000027: PhysicalKeyboardKey.keyS,
1985 0x00000028: PhysicalKeyboardKey.keyD,
1986 0x00000029: PhysicalKeyboardKey.keyF,
1987 0x0000002a: PhysicalKeyboardKey.keyG,
1988 0x0000002b: PhysicalKeyboardKey.keyH,
1989 0x0000002c: PhysicalKeyboardKey.keyJ,
1990 0x0000002d: PhysicalKeyboardKey.keyK,
1991 0x0000002e: PhysicalKeyboardKey.keyL,
1992 0x0000002f: PhysicalKeyboardKey.semicolon,
1993 0x00000030: PhysicalKeyboardKey.quote,
1994 0x00000031: PhysicalKeyboardKey.backquote,
1995 0x00000032: PhysicalKeyboardKey.shiftLeft,
1996 0x00000033: PhysicalKeyboardKey.backslash,
1997 0x00000034: PhysicalKeyboardKey.keyZ,
1998 0x00000035: PhysicalKeyboardKey.keyX,
1999 0x00000036: PhysicalKeyboardKey.keyC,
2000 0x00000037: PhysicalKeyboardKey.keyV,
2001 0x00000038: PhysicalKeyboardKey.keyB,
2002 0x00000039: PhysicalKeyboardKey.keyN,
2003 0x0000003a: PhysicalKeyboardKey.keyM,
2004 0x0000003b: PhysicalKeyboardKey.comma,
2005 0x0000003c: PhysicalKeyboardKey.period,
2006 0x0000003d: PhysicalKeyboardKey.slash,
2007 0x0000003e: PhysicalKeyboardKey.shiftRight,
2008 0x0000003f: PhysicalKeyboardKey.numpadMultiply,
2009 0x00000040: PhysicalKeyboardKey.altLeft,
2010 0x00000041: PhysicalKeyboardKey.space,
2011 0x00000042: PhysicalKeyboardKey.capsLock,
2012 0x00000043: PhysicalKeyboardKey.f1,
2013 0x00000044: PhysicalKeyboardKey.f2,
2014 0x00000045: PhysicalKeyboardKey.f3,
2015 0x00000046: PhysicalKeyboardKey.f4,
2016 0x00000047: PhysicalKeyboardKey.f5,
2017 0x00000048: PhysicalKeyboardKey.f6,
2018 0x00000049: PhysicalKeyboardKey.f7,
2019 0x0000004a: PhysicalKeyboardKey.f8,
2020 0x0000004b: PhysicalKeyboardKey.f9,
2021 0x0000004c: PhysicalKeyboardKey.f10,
2022 0x0000004d: PhysicalKeyboardKey.numLock,
2023 0x0000004e: PhysicalKeyboardKey.scrollLock,
2024 0x0000004f: PhysicalKeyboardKey.numpad7,
2025 0x00000050: PhysicalKeyboardKey.numpad8,
2026 0x00000051: PhysicalKeyboardKey.numpad9,
2027 0x00000052: PhysicalKeyboardKey.numpadSubtract,
2028 0x00000053: PhysicalKeyboardKey.numpad4,
2029 0x00000054: PhysicalKeyboardKey.numpad5,
2030 0x00000055: PhysicalKeyboardKey.numpad6,
2031 0x00000056: PhysicalKeyboardKey.numpadAdd,
2032 0x00000057: PhysicalKeyboardKey.numpad1,
2033 0x00000058: PhysicalKeyboardKey.numpad2,
2034 0x00000059: PhysicalKeyboardKey.numpad3,
2035 0x0000005a: PhysicalKeyboardKey.numpad0,
2036 0x0000005b: PhysicalKeyboardKey.numpadDecimal,
2037 0x0000005d: PhysicalKeyboardKey.lang5,
2038 0x0000005e: PhysicalKeyboardKey.intlBackslash,
2039 0x0000005f: PhysicalKeyboardKey.f11,
2040 0x00000060: PhysicalKeyboardKey.f12,
2041 0x00000061: PhysicalKeyboardKey.intlRo,
2042 0x00000062: PhysicalKeyboardKey.lang3,
2043 0x00000063: PhysicalKeyboardKey.lang4,
2044 0x00000064: PhysicalKeyboardKey.convert,
2045 0x00000065: PhysicalKeyboardKey.kanaMode,
2046 0x00000066: PhysicalKeyboardKey.nonConvert,
2047 0x00000068: PhysicalKeyboardKey.numpadEnter,
2048 0x00000069: PhysicalKeyboardKey.controlRight,
2049 0x0000006a: PhysicalKeyboardKey.numpadDivide,
2050 0x0000006b: PhysicalKeyboardKey.printScreen,
2051 0x0000006c: PhysicalKeyboardKey.altRight,
2052 0x0000006e: PhysicalKeyboardKey.home,
2053 0x0000006f: PhysicalKeyboardKey.arrowUp,
2054 0x00000070: PhysicalKeyboardKey.pageUp,
2055 0x00000071: PhysicalKeyboardKey.arrowLeft,
2056 0x00000072: PhysicalKeyboardKey.arrowRight,
2057 0x00000073: PhysicalKeyboardKey.end,
2058 0x00000074: PhysicalKeyboardKey.arrowDown,
2059 0x00000075: PhysicalKeyboardKey.pageDown,
2060 0x00000076: PhysicalKeyboardKey.insert,
2061 0x00000077: PhysicalKeyboardKey.delete,
2062 0x00000079: PhysicalKeyboardKey.audioVolumeMute,
2063 0x0000007a: PhysicalKeyboardKey.audioVolumeDown,
2064 0x0000007b: PhysicalKeyboardKey.audioVolumeUp,
2065 0x0000007c: PhysicalKeyboardKey.power,
2066 0x0000007d: PhysicalKeyboardKey.numpadEqual,
2067 0x0000007e: PhysicalKeyboardKey.numpadSignChange,
2068 0x0000007f: PhysicalKeyboardKey.pause,
2069 0x00000080: PhysicalKeyboardKey.showAllWindows,
2070 0x00000081: PhysicalKeyboardKey.numpadComma,
2071 0x00000082: PhysicalKeyboardKey.lang1,
2072 0x00000083: PhysicalKeyboardKey.lang2,
2073 0x00000084: PhysicalKeyboardKey.intlYen,
2074 0x00000085: PhysicalKeyboardKey.metaLeft,
2075 0x00000086: PhysicalKeyboardKey.metaRight,
2076 0x00000087: PhysicalKeyboardKey.contextMenu,
2077 0x00000088: PhysicalKeyboardKey.browserStop,
2078 0x00000089: PhysicalKeyboardKey.again,
2079 0x0000008b: PhysicalKeyboardKey.undo,
2080 0x0000008c: PhysicalKeyboardKey.select,
2081 0x0000008d: PhysicalKeyboardKey.copy,
2082 0x0000008e: PhysicalKeyboardKey.open,
2083 0x0000008f: PhysicalKeyboardKey.paste,
2084 0x00000090: PhysicalKeyboardKey.find,
2085 0x00000091: PhysicalKeyboardKey.cut,
2086 0x00000092: PhysicalKeyboardKey.help,
2087 0x00000094: PhysicalKeyboardKey.launchApp2,
2088 0x00000096: PhysicalKeyboardKey.sleep,
2089 0x00000097: PhysicalKeyboardKey.wakeUp,
2090 0x00000098: PhysicalKeyboardKey.launchApp1,
2091 0x0000009e: PhysicalKeyboardKey.launchInternetBrowser,
2092 0x000000a0: PhysicalKeyboardKey.lockScreen,
2093 0x000000a3: PhysicalKeyboardKey.launchMail,
2094 0x000000a4: PhysicalKeyboardKey.browserFavorites,
2095 0x000000a6: PhysicalKeyboardKey.browserBack,
2096 0x000000a7: PhysicalKeyboardKey.browserForward,
2097 0x000000a9: PhysicalKeyboardKey.eject,
2098 0x000000ab: PhysicalKeyboardKey.mediaTrackNext,
2099 0x000000ac: PhysicalKeyboardKey.mediaPlayPause,
2100 0x000000ad: PhysicalKeyboardKey.mediaTrackPrevious,
2101 0x000000ae: PhysicalKeyboardKey.mediaStop,
2102 0x000000af: PhysicalKeyboardKey.mediaRecord,
2103 0x000000b0: PhysicalKeyboardKey.mediaRewind,
2104 0x000000b1: PhysicalKeyboardKey.launchPhone,
2105 0x000000b3: PhysicalKeyboardKey.mediaSelect,
2106 0x000000b4: PhysicalKeyboardKey.browserHome,
2107 0x000000b5: PhysicalKeyboardKey.browserRefresh,
2108 0x000000b6: PhysicalKeyboardKey.exit,
2109 0x000000bb: PhysicalKeyboardKey.numpadParenLeft,
2110 0x000000bc: PhysicalKeyboardKey.numpadParenRight,
2111 0x000000bd: PhysicalKeyboardKey.newKey,
2112 0x000000be: PhysicalKeyboardKey.redo,
2113 0x000000bf: PhysicalKeyboardKey.f13,
2114 0x000000c0: PhysicalKeyboardKey.f14,
2115 0x000000c1: PhysicalKeyboardKey.f15,
2116 0x000000c2: PhysicalKeyboardKey.f16,
2117 0x000000c3: PhysicalKeyboardKey.f17,
2118 0x000000c4: PhysicalKeyboardKey.f18,
2119 0x000000c5: PhysicalKeyboardKey.f19,
2120 0x000000c6: PhysicalKeyboardKey.f20,
2121 0x000000c7: PhysicalKeyboardKey.f21,
2122 0x000000c8: PhysicalKeyboardKey.f22,
2123 0x000000c9: PhysicalKeyboardKey.f23,
2124 0x000000ca: PhysicalKeyboardKey.f24,
2125 0x000000d1: PhysicalKeyboardKey.mediaPause,
2126 0x000000d6: PhysicalKeyboardKey.close,
2127 0x000000d7: PhysicalKeyboardKey.mediaPlay,
2128 0x000000d8: PhysicalKeyboardKey.mediaFastForward,
2129 0x000000d9: PhysicalKeyboardKey.bassBoost,
2130 0x000000da: PhysicalKeyboardKey.print,
2131 0x000000e1: PhysicalKeyboardKey.browserSearch,
2132 0x000000e8: PhysicalKeyboardKey.brightnessDown,
2133 0x000000e9: PhysicalKeyboardKey.brightnessUp,
2134 0x000000eb: PhysicalKeyboardKey.displayToggleIntExt,
2135 0x000000ed: PhysicalKeyboardKey.kbdIllumDown,
2136 0x000000ee: PhysicalKeyboardKey.kbdIllumUp,
2137 0x000000ef: PhysicalKeyboardKey.mailSend,
2138 0x000000f0: PhysicalKeyboardKey.mailReply,
2139 0x000000f1: PhysicalKeyboardKey.mailForward,
2140 0x000000f2: PhysicalKeyboardKey.save,
2141 0x000000f3: PhysicalKeyboardKey.launchDocuments,
2142 0x000000fc: PhysicalKeyboardKey.brightnessAuto,
2143 0x00000100: PhysicalKeyboardKey.microphoneMuteToggle,
2144 0x0000016e: PhysicalKeyboardKey.info,
2145 0x00000172: PhysicalKeyboardKey.programGuide,
2146 0x0000017a: PhysicalKeyboardKey.closedCaptionToggle,
2147 0x0000017c: PhysicalKeyboardKey.zoomToggle,
2148 0x0000017e: PhysicalKeyboardKey.launchKeyboardLayout,
2149 0x00000190: PhysicalKeyboardKey.launchAudioBrowser,
2150 0x00000195: PhysicalKeyboardKey.launchCalendar,
2151 0x0000019d: PhysicalKeyboardKey.mediaLast,
2152 0x000001a2: PhysicalKeyboardKey.channelUp,
2153 0x000001a3: PhysicalKeyboardKey.channelDown,
2154 0x000001aa: PhysicalKeyboardKey.zoomIn,
2155 0x000001ab: PhysicalKeyboardKey.zoomOut,
2156 0x000001ad: PhysicalKeyboardKey.launchWordProcessor,
2157 0x000001af: PhysicalKeyboardKey.launchSpreadsheet,
2158 0x000001b5: PhysicalKeyboardKey.launchContacts,
2159 0x000001b7: PhysicalKeyboardKey.brightnessToggle,
2160 0x000001b8: PhysicalKeyboardKey.spellCheck,
2161 0x000001b9: PhysicalKeyboardKey.logOff,
2162 0x0000024b: PhysicalKeyboardKey.launchControlPanel,
2163 0x0000024c: PhysicalKeyboardKey.selectTask,
2164 0x0000024d: PhysicalKeyboardKey.launchScreenSaver,
2165 0x0000024e: PhysicalKeyboardKey.speechInputToggle,
2166 0x0000024f: PhysicalKeyboardKey.launchAssistant,
2167 0x00000250: PhysicalKeyboardKey.keyboardLayoutSelect,
2168 0x00000258: PhysicalKeyboardKey.brightnessMinimum,
2169 0x00000259: PhysicalKeyboardKey.brightnessMaximum,
2170 0x00000281: PhysicalKeyboardKey.privacyScreenToggle,
2171};
2172
2173/// Maps Web KeyboardEvent codes to the matching [LogicalKeyboardKey].
2174const Map<String, LogicalKeyboardKey> kWebToLogicalKey = <String, LogicalKeyboardKey>{
2175 'AVRInput': LogicalKeyboardKey.avrInput,
2176 'AVRPower': LogicalKeyboardKey.avrPower,
2177 'Accel': LogicalKeyboardKey.accel,
2178 'Accept': LogicalKeyboardKey.accept,
2179 'Again': LogicalKeyboardKey.again,
2180 'AllCandidates': LogicalKeyboardKey.allCandidates,
2181 'Alphanumeric': LogicalKeyboardKey.alphanumeric,
2182 'AltGraph': LogicalKeyboardKey.altGraph,
2183 'AppSwitch': LogicalKeyboardKey.appSwitch,
2184 'ArrowDown': LogicalKeyboardKey.arrowDown,
2185 'ArrowLeft': LogicalKeyboardKey.arrowLeft,
2186 'ArrowRight': LogicalKeyboardKey.arrowRight,
2187 'ArrowUp': LogicalKeyboardKey.arrowUp,
2188 'Attn': LogicalKeyboardKey.attn,
2189 'AudioBalanceLeft': LogicalKeyboardKey.audioBalanceLeft,
2190 'AudioBalanceRight': LogicalKeyboardKey.audioBalanceRight,
2191 'AudioBassBoostDown': LogicalKeyboardKey.audioBassBoostDown,
2192 'AudioBassBoostToggle': LogicalKeyboardKey.audioBassBoostToggle,
2193 'AudioBassBoostUp': LogicalKeyboardKey.audioBassBoostUp,
2194 'AudioFaderFront': LogicalKeyboardKey.audioFaderFront,
2195 'AudioFaderRear': LogicalKeyboardKey.audioFaderRear,
2196 'AudioSurroundModeNext': LogicalKeyboardKey.audioSurroundModeNext,
2197 'AudioTrebleDown': LogicalKeyboardKey.audioTrebleDown,
2198 'AudioTrebleUp': LogicalKeyboardKey.audioTrebleUp,
2199 'AudioVolumeDown': LogicalKeyboardKey.audioVolumeDown,
2200 'AudioVolumeMute': LogicalKeyboardKey.audioVolumeMute,
2201 'AudioVolumeUp': LogicalKeyboardKey.audioVolumeUp,
2202 'Backspace': LogicalKeyboardKey.backspace,
2203 'BrightnessDown': LogicalKeyboardKey.brightnessDown,
2204 'BrightnessUp': LogicalKeyboardKey.brightnessUp,
2205 'BrowserBack': LogicalKeyboardKey.browserBack,
2206 'BrowserFavorites': LogicalKeyboardKey.browserFavorites,
2207 'BrowserForward': LogicalKeyboardKey.browserForward,
2208 'BrowserHome': LogicalKeyboardKey.browserHome,
2209 'BrowserRefresh': LogicalKeyboardKey.browserRefresh,
2210 'BrowserSearch': LogicalKeyboardKey.browserSearch,
2211 'BrowserStop': LogicalKeyboardKey.browserStop,
2212 'Call': LogicalKeyboardKey.call,
2213 'Camera': LogicalKeyboardKey.camera,
2214 'CameraFocus': LogicalKeyboardKey.cameraFocus,
2215 'Cancel': LogicalKeyboardKey.cancel,
2216 'CapsLock': LogicalKeyboardKey.capsLock,
2217 'ChannelDown': LogicalKeyboardKey.channelDown,
2218 'ChannelUp': LogicalKeyboardKey.channelUp,
2219 'Clear': LogicalKeyboardKey.clear,
2220 'Close': LogicalKeyboardKey.close,
2221 'ClosedCaptionToggle': LogicalKeyboardKey.closedCaptionToggle,
2222 'CodeInput': LogicalKeyboardKey.codeInput,
2223 'ColorF0Red': LogicalKeyboardKey.colorF0Red,
2224 'ColorF1Green': LogicalKeyboardKey.colorF1Green,
2225 'ColorF2Yellow': LogicalKeyboardKey.colorF2Yellow,
2226 'ColorF3Blue': LogicalKeyboardKey.colorF3Blue,
2227 'ColorF4Grey': LogicalKeyboardKey.colorF4Grey,
2228 'ColorF5Brown': LogicalKeyboardKey.colorF5Brown,
2229 'Compose': LogicalKeyboardKey.compose,
2230 'ContextMenu': LogicalKeyboardKey.contextMenu,
2231 'Convert': LogicalKeyboardKey.convert,
2232 'Copy': LogicalKeyboardKey.copy,
2233 'CrSel': LogicalKeyboardKey.crSel,
2234 'Cut': LogicalKeyboardKey.cut,
2235 'DVR': LogicalKeyboardKey.dvr,
2236 'Delete': LogicalKeyboardKey.delete,
2237 'Dimmer': LogicalKeyboardKey.dimmer,
2238 'DisplaySwap': LogicalKeyboardKey.displaySwap,
2239 'Eisu': LogicalKeyboardKey.eisu,
2240 'Eject': LogicalKeyboardKey.eject,
2241 'End': LogicalKeyboardKey.end,
2242 'EndCall': LogicalKeyboardKey.endCall,
2243 'Enter': LogicalKeyboardKey.enter,
2244 'EraseEof': LogicalKeyboardKey.eraseEof,
2245 'Esc': LogicalKeyboardKey.escape,
2246 'Escape': LogicalKeyboardKey.escape,
2247 'ExSel': LogicalKeyboardKey.exSel,
2248 'Execute': LogicalKeyboardKey.execute,
2249 'Exit': LogicalKeyboardKey.exit,
2250 'F1': LogicalKeyboardKey.f1,
2251 'F10': LogicalKeyboardKey.f10,
2252 'F11': LogicalKeyboardKey.f11,
2253 'F12': LogicalKeyboardKey.f12,
2254 'F13': LogicalKeyboardKey.f13,
2255 'F14': LogicalKeyboardKey.f14,
2256 'F15': LogicalKeyboardKey.f15,
2257 'F16': LogicalKeyboardKey.f16,
2258 'F17': LogicalKeyboardKey.f17,
2259 'F18': LogicalKeyboardKey.f18,
2260 'F19': LogicalKeyboardKey.f19,
2261 'F2': LogicalKeyboardKey.f2,
2262 'F20': LogicalKeyboardKey.f20,
2263 'F21': LogicalKeyboardKey.f21,
2264 'F22': LogicalKeyboardKey.f22,
2265 'F23': LogicalKeyboardKey.f23,
2266 'F24': LogicalKeyboardKey.f24,
2267 'F3': LogicalKeyboardKey.f3,
2268 'F4': LogicalKeyboardKey.f4,
2269 'F5': LogicalKeyboardKey.f5,
2270 'F6': LogicalKeyboardKey.f6,
2271 'F7': LogicalKeyboardKey.f7,
2272 'F8': LogicalKeyboardKey.f8,
2273 'F9': LogicalKeyboardKey.f9,
2274 'FavoriteClear0': LogicalKeyboardKey.favoriteClear0,
2275 'FavoriteClear1': LogicalKeyboardKey.favoriteClear1,
2276 'FavoriteClear2': LogicalKeyboardKey.favoriteClear2,
2277 'FavoriteClear3': LogicalKeyboardKey.favoriteClear3,
2278 'FavoriteRecall0': LogicalKeyboardKey.favoriteRecall0,
2279 'FavoriteRecall1': LogicalKeyboardKey.favoriteRecall1,
2280 'FavoriteRecall2': LogicalKeyboardKey.favoriteRecall2,
2281 'FavoriteRecall3': LogicalKeyboardKey.favoriteRecall3,
2282 'FavoriteStore0': LogicalKeyboardKey.favoriteStore0,
2283 'FavoriteStore1': LogicalKeyboardKey.favoriteStore1,
2284 'FavoriteStore2': LogicalKeyboardKey.favoriteStore2,
2285 'FavoriteStore3': LogicalKeyboardKey.favoriteStore3,
2286 'FinalMode': LogicalKeyboardKey.finalMode,
2287 'Find': LogicalKeyboardKey.find,
2288 'Fn': LogicalKeyboardKey.fn,
2289 'FnLock': LogicalKeyboardKey.fnLock,
2290 'GoBack': LogicalKeyboardKey.goBack,
2291 'GoHome': LogicalKeyboardKey.goHome,
2292 'GroupFirst': LogicalKeyboardKey.groupFirst,
2293 'GroupLast': LogicalKeyboardKey.groupLast,
2294 'GroupNext': LogicalKeyboardKey.groupNext,
2295 'GroupPrevious': LogicalKeyboardKey.groupPrevious,
2296 'Guide': LogicalKeyboardKey.guide,
2297 'GuideNextDay': LogicalKeyboardKey.guideNextDay,
2298 'GuidePreviousDay': LogicalKeyboardKey.guidePreviousDay,
2299 'HangulMode': LogicalKeyboardKey.hangulMode,
2300 'HanjaMode': LogicalKeyboardKey.hanjaMode,
2301 'Hankaku': LogicalKeyboardKey.hankaku,
2302 'HeadsetHook': LogicalKeyboardKey.headsetHook,
2303 'Help': LogicalKeyboardKey.help,
2304 'Hibernate': LogicalKeyboardKey.hibernate,
2305 'Hiragana': LogicalKeyboardKey.hiragana,
2306 'HiraganaKatakana': LogicalKeyboardKey.hiraganaKatakana,
2307 'Home': LogicalKeyboardKey.home,
2308 'Hyper': LogicalKeyboardKey.hyper,
2309 'Info': LogicalKeyboardKey.info,
2310 'Insert': LogicalKeyboardKey.insert,
2311 'InstantReplay': LogicalKeyboardKey.instantReplay,
2312 'JunjaMode': LogicalKeyboardKey.junjaMode,
2313 'KanaMode': LogicalKeyboardKey.kanaMode,
2314 'KanjiMode': LogicalKeyboardKey.kanjiMode,
2315 'Katakana': LogicalKeyboardKey.katakana,
2316 'Key11': LogicalKeyboardKey.key11,
2317 'Key12': LogicalKeyboardKey.key12,
2318 'LastNumberRedial': LogicalKeyboardKey.lastNumberRedial,
2319 'LaunchApplication1': LogicalKeyboardKey.launchApplication1,
2320 'LaunchApplication2': LogicalKeyboardKey.launchApplication2,
2321 'LaunchAssistant': LogicalKeyboardKey.launchAssistant,
2322 'LaunchCalendar': LogicalKeyboardKey.launchCalendar,
2323 'LaunchContacts': LogicalKeyboardKey.launchContacts,
2324 'LaunchControlPanel': LogicalKeyboardKey.launchControlPanel,
2325 'LaunchMail': LogicalKeyboardKey.launchMail,
2326 'LaunchMediaPlayer': LogicalKeyboardKey.launchMediaPlayer,
2327 'LaunchMusicPlayer': LogicalKeyboardKey.launchMusicPlayer,
2328 'LaunchPhone': LogicalKeyboardKey.launchPhone,
2329 'LaunchScreenSaver': LogicalKeyboardKey.launchScreenSaver,
2330 'LaunchSpreadsheet': LogicalKeyboardKey.launchSpreadsheet,
2331 'LaunchWebBrowser': LogicalKeyboardKey.launchWebBrowser,
2332 'LaunchWebCam': LogicalKeyboardKey.launchWebCam,
2333 'LaunchWordProcessor': LogicalKeyboardKey.launchWordProcessor,
2334 'Link': LogicalKeyboardKey.link,
2335 'ListProgram': LogicalKeyboardKey.listProgram,
2336 'LiveContent': LogicalKeyboardKey.liveContent,
2337 'Lock': LogicalKeyboardKey.lock,
2338 'LogOff': LogicalKeyboardKey.logOff,
2339 'MailForward': LogicalKeyboardKey.mailForward,
2340 'MailReply': LogicalKeyboardKey.mailReply,
2341 'MailSend': LogicalKeyboardKey.mailSend,
2342 'MannerMode': LogicalKeyboardKey.mannerMode,
2343 'MediaApps': LogicalKeyboardKey.mediaApps,
2344 'MediaAudioTrack': LogicalKeyboardKey.mediaAudioTrack,
2345 'MediaClose': LogicalKeyboardKey.mediaClose,
2346 'MediaFastForward': LogicalKeyboardKey.mediaFastForward,
2347 'MediaLast': LogicalKeyboardKey.mediaLast,
2348 'MediaPause': LogicalKeyboardKey.mediaPause,
2349 'MediaPlay': LogicalKeyboardKey.mediaPlay,
2350 'MediaPlayPause': LogicalKeyboardKey.mediaPlayPause,
2351 'MediaRecord': LogicalKeyboardKey.mediaRecord,
2352 'MediaRewind': LogicalKeyboardKey.mediaRewind,
2353 'MediaSkip': LogicalKeyboardKey.mediaSkip,
2354 'MediaSkipBackward': LogicalKeyboardKey.mediaSkipBackward,
2355 'MediaSkipForward': LogicalKeyboardKey.mediaSkipForward,
2356 'MediaStepBackward': LogicalKeyboardKey.mediaStepBackward,
2357 'MediaStepForward': LogicalKeyboardKey.mediaStepForward,
2358 'MediaStop': LogicalKeyboardKey.mediaStop,
2359 'MediaTopMenu': LogicalKeyboardKey.mediaTopMenu,
2360 'MediaTrackNext': LogicalKeyboardKey.mediaTrackNext,
2361 'MediaTrackPrevious': LogicalKeyboardKey.mediaTrackPrevious,
2362 'MicrophoneToggle': LogicalKeyboardKey.microphoneToggle,
2363 'MicrophoneVolumeDown': LogicalKeyboardKey.microphoneVolumeDown,
2364 'MicrophoneVolumeMute': LogicalKeyboardKey.microphoneVolumeMute,
2365 'MicrophoneVolumeUp': LogicalKeyboardKey.microphoneVolumeUp,
2366 'ModeChange': LogicalKeyboardKey.modeChange,
2367 'NavigateIn': LogicalKeyboardKey.navigateIn,
2368 'NavigateNext': LogicalKeyboardKey.navigateNext,
2369 'NavigateOut': LogicalKeyboardKey.navigateOut,
2370 'NavigatePrevious': LogicalKeyboardKey.navigatePrevious,
2371 'New': LogicalKeyboardKey.newKey,
2372 'NextCandidate': LogicalKeyboardKey.nextCandidate,
2373 'NextFavoriteChannel': LogicalKeyboardKey.nextFavoriteChannel,
2374 'NextUserProfile': LogicalKeyboardKey.nextUserProfile,
2375 'NonConvert': LogicalKeyboardKey.nonConvert,
2376 'Notification': LogicalKeyboardKey.notification,
2377 'NumLock': LogicalKeyboardKey.numLock,
2378 'OnDemand': LogicalKeyboardKey.onDemand,
2379 'Open': LogicalKeyboardKey.open,
2380 'PageDown': LogicalKeyboardKey.pageDown,
2381 'PageUp': LogicalKeyboardKey.pageUp,
2382 'Pairing': LogicalKeyboardKey.pairing,
2383 'Paste': LogicalKeyboardKey.paste,
2384 'Pause': LogicalKeyboardKey.pause,
2385 'PinPDown': LogicalKeyboardKey.pInPDown,
2386 'PinPMove': LogicalKeyboardKey.pInPMove,
2387 'PinPToggle': LogicalKeyboardKey.pInPToggle,
2388 'PinPUp': LogicalKeyboardKey.pInPUp,
2389 'Play': LogicalKeyboardKey.play,
2390 'PlaySpeedDown': LogicalKeyboardKey.playSpeedDown,
2391 'PlaySpeedReset': LogicalKeyboardKey.playSpeedReset,
2392 'PlaySpeedUp': LogicalKeyboardKey.playSpeedUp,
2393 'Power': LogicalKeyboardKey.power,
2394 'PowerOff': LogicalKeyboardKey.powerOff,
2395 'PreviousCandidate': LogicalKeyboardKey.previousCandidate,
2396 'Print': LogicalKeyboardKey.print,
2397 'PrintScreen': LogicalKeyboardKey.printScreen,
2398 'Process': LogicalKeyboardKey.process,
2399 'Props': LogicalKeyboardKey.props,
2400 'RandomToggle': LogicalKeyboardKey.randomToggle,
2401 'RcLowBattery': LogicalKeyboardKey.rcLowBattery,
2402 'RecordSpeedNext': LogicalKeyboardKey.recordSpeedNext,
2403 'Redo': LogicalKeyboardKey.redo,
2404 'RfBypass': LogicalKeyboardKey.rfBypass,
2405 'Romaji': LogicalKeyboardKey.romaji,
2406 'STBInput': LogicalKeyboardKey.stbInput,
2407 'STBPower': LogicalKeyboardKey.stbPower,
2408 'Save': LogicalKeyboardKey.save,
2409 'ScanChannelsToggle': LogicalKeyboardKey.scanChannelsToggle,
2410 'ScreenModeNext': LogicalKeyboardKey.screenModeNext,
2411 'ScrollLock': LogicalKeyboardKey.scrollLock,
2412 'Select': LogicalKeyboardKey.select,
2413 'Settings': LogicalKeyboardKey.settings,
2414 'ShiftLevel5': LogicalKeyboardKey.shiftLevel5,
2415 'SingleCandidate': LogicalKeyboardKey.singleCandidate,
2416 'Soft1': LogicalKeyboardKey.soft1,
2417 'Soft2': LogicalKeyboardKey.soft2,
2418 'Soft3': LogicalKeyboardKey.soft3,
2419 'Soft4': LogicalKeyboardKey.soft4,
2420 'Soft5': LogicalKeyboardKey.soft5,
2421 'Soft6': LogicalKeyboardKey.soft6,
2422 'Soft7': LogicalKeyboardKey.soft7,
2423 'Soft8': LogicalKeyboardKey.soft8,
2424 'SpeechCorrectionList': LogicalKeyboardKey.speechCorrectionList,
2425 'SpeechInputToggle': LogicalKeyboardKey.speechInputToggle,
2426 'SpellCheck': LogicalKeyboardKey.spellCheck,
2427 'SplitScreenToggle': LogicalKeyboardKey.splitScreenToggle,
2428 'Standby': LogicalKeyboardKey.standby,
2429 'Subtitle': LogicalKeyboardKey.subtitle,
2430 'Super': LogicalKeyboardKey.superKey,
2431 'Symbol': LogicalKeyboardKey.symbol,
2432 'SymbolLock': LogicalKeyboardKey.symbolLock,
2433 'TV': LogicalKeyboardKey.tv,
2434 'TV3DMode': LogicalKeyboardKey.tv3DMode,
2435 'TVAntennaCable': LogicalKeyboardKey.tvAntennaCable,
2436 'TVAudioDescription': LogicalKeyboardKey.tvAudioDescription,
2437 'TVAudioDescriptionMixDown': LogicalKeyboardKey.tvAudioDescriptionMixDown,
2438 'TVAudioDescriptionMixUp': LogicalKeyboardKey.tvAudioDescriptionMixUp,
2439 'TVContentsMenu': LogicalKeyboardKey.tvContentsMenu,
2440 'TVDataService': LogicalKeyboardKey.tvDataService,
2441 'TVInput': LogicalKeyboardKey.tvInput,
2442 'TVInputComponent1': LogicalKeyboardKey.tvInputComponent1,
2443 'TVInputComponent2': LogicalKeyboardKey.tvInputComponent2,
2444 'TVInputComposite1': LogicalKeyboardKey.tvInputComposite1,
2445 'TVInputComposite2': LogicalKeyboardKey.tvInputComposite2,
2446 'TVInputHDMI1': LogicalKeyboardKey.tvInputHDMI1,
2447 'TVInputHDMI2': LogicalKeyboardKey.tvInputHDMI2,
2448 'TVInputHDMI3': LogicalKeyboardKey.tvInputHDMI3,
2449 'TVInputHDMI4': LogicalKeyboardKey.tvInputHDMI4,
2450 'TVInputVGA1': LogicalKeyboardKey.tvInputVGA1,
2451 'TVMediaContext': LogicalKeyboardKey.tvMediaContext,
2452 'TVNetwork': LogicalKeyboardKey.tvNetwork,
2453 'TVNumberEntry': LogicalKeyboardKey.tvNumberEntry,
2454 'TVPower': LogicalKeyboardKey.tvPower,
2455 'TVRadioService': LogicalKeyboardKey.tvRadioService,
2456 'TVSatellite': LogicalKeyboardKey.tvSatellite,
2457 'TVSatelliteBS': LogicalKeyboardKey.tvSatelliteBS,
2458 'TVSatelliteCS': LogicalKeyboardKey.tvSatelliteCS,
2459 'TVSatelliteToggle': LogicalKeyboardKey.tvSatelliteToggle,
2460 'TVTerrestrialAnalog': LogicalKeyboardKey.tvTerrestrialAnalog,
2461 'TVTerrestrialDigital': LogicalKeyboardKey.tvTerrestrialDigital,
2462 'TVTimer': LogicalKeyboardKey.tvTimer,
2463 'Tab': LogicalKeyboardKey.tab,
2464 'Teletext': LogicalKeyboardKey.teletext,
2465 'Undo': LogicalKeyboardKey.undo,
2466 'Unidentified': LogicalKeyboardKey.unidentified,
2467 'VideoModeNext': LogicalKeyboardKey.videoModeNext,
2468 'VoiceDial': LogicalKeyboardKey.voiceDial,
2469 'WakeUp': LogicalKeyboardKey.wakeUp,
2470 'Wink': LogicalKeyboardKey.wink,
2471 'Zenkaku': LogicalKeyboardKey.zenkaku,
2472 'ZenkakuHankaku': LogicalKeyboardKey.zenkakuHankaku,
2473 'ZoomIn': LogicalKeyboardKey.zoomIn,
2474 'ZoomOut': LogicalKeyboardKey.zoomOut,
2475 'ZoomToggle': LogicalKeyboardKey.zoomToggle,
2476};
2477
2478/// Maps Web KeyboardEvent codes to the matching [PhysicalKeyboardKey].
2479const Map<String, PhysicalKeyboardKey> kWebToPhysicalKey = <String, PhysicalKeyboardKey>{
2480 'Abort': PhysicalKeyboardKey.abort,
2481 'Again': PhysicalKeyboardKey.again,
2482 'AltLeft': PhysicalKeyboardKey.altLeft,
2483 'AltRight': PhysicalKeyboardKey.altRight,
2484 'ArrowDown': PhysicalKeyboardKey.arrowDown,
2485 'ArrowLeft': PhysicalKeyboardKey.arrowLeft,
2486 'ArrowRight': PhysicalKeyboardKey.arrowRight,
2487 'ArrowUp': PhysicalKeyboardKey.arrowUp,
2488 'AudioVolumeDown': PhysicalKeyboardKey.audioVolumeDown,
2489 'AudioVolumeMute': PhysicalKeyboardKey.audioVolumeMute,
2490 'AudioVolumeUp': PhysicalKeyboardKey.audioVolumeUp,
2491 'Backquote': PhysicalKeyboardKey.backquote,
2492 'Backslash': PhysicalKeyboardKey.backslash,
2493 'Backspace': PhysicalKeyboardKey.backspace,
2494 'BracketLeft': PhysicalKeyboardKey.bracketLeft,
2495 'BracketRight': PhysicalKeyboardKey.bracketRight,
2496 'BrightnessDown': PhysicalKeyboardKey.brightnessDown,
2497 'BrightnessUp': PhysicalKeyboardKey.brightnessUp,
2498 'BrowserBack': PhysicalKeyboardKey.browserBack,
2499 'BrowserFavorites': PhysicalKeyboardKey.browserFavorites,
2500 'BrowserForward': PhysicalKeyboardKey.browserForward,
2501 'BrowserHome': PhysicalKeyboardKey.browserHome,
2502 'BrowserRefresh': PhysicalKeyboardKey.browserRefresh,
2503 'BrowserSearch': PhysicalKeyboardKey.browserSearch,
2504 'BrowserStop': PhysicalKeyboardKey.browserStop,
2505 'CapsLock': PhysicalKeyboardKey.capsLock,
2506 'Comma': PhysicalKeyboardKey.comma,
2507 'ContextMenu': PhysicalKeyboardKey.contextMenu,
2508 'ControlLeft': PhysicalKeyboardKey.controlLeft,
2509 'ControlRight': PhysicalKeyboardKey.controlRight,
2510 'Convert': PhysicalKeyboardKey.convert,
2511 'Copy': PhysicalKeyboardKey.copy,
2512 'Cut': PhysicalKeyboardKey.cut,
2513 'Delete': PhysicalKeyboardKey.delete,
2514 'Digit0': PhysicalKeyboardKey.digit0,
2515 'Digit1': PhysicalKeyboardKey.digit1,
2516 'Digit2': PhysicalKeyboardKey.digit2,
2517 'Digit3': PhysicalKeyboardKey.digit3,
2518 'Digit4': PhysicalKeyboardKey.digit4,
2519 'Digit5': PhysicalKeyboardKey.digit5,
2520 'Digit6': PhysicalKeyboardKey.digit6,
2521 'Digit7': PhysicalKeyboardKey.digit7,
2522 'Digit8': PhysicalKeyboardKey.digit8,
2523 'Digit9': PhysicalKeyboardKey.digit9,
2524 'DisplayToggleIntExt': PhysicalKeyboardKey.displayToggleIntExt,
2525 'Eject': PhysicalKeyboardKey.eject,
2526 'End': PhysicalKeyboardKey.end,
2527 'Enter': PhysicalKeyboardKey.enter,
2528 'Equal': PhysicalKeyboardKey.equal,
2529 'Escape': PhysicalKeyboardKey.escape,
2530 'Esc': PhysicalKeyboardKey.escape,
2531 'F1': PhysicalKeyboardKey.f1,
2532 'F10': PhysicalKeyboardKey.f10,
2533 'F11': PhysicalKeyboardKey.f11,
2534 'F12': PhysicalKeyboardKey.f12,
2535 'F13': PhysicalKeyboardKey.f13,
2536 'F14': PhysicalKeyboardKey.f14,
2537 'F15': PhysicalKeyboardKey.f15,
2538 'F16': PhysicalKeyboardKey.f16,
2539 'F17': PhysicalKeyboardKey.f17,
2540 'F18': PhysicalKeyboardKey.f18,
2541 'F19': PhysicalKeyboardKey.f19,
2542 'F2': PhysicalKeyboardKey.f2,
2543 'F20': PhysicalKeyboardKey.f20,
2544 'F21': PhysicalKeyboardKey.f21,
2545 'F22': PhysicalKeyboardKey.f22,
2546 'F23': PhysicalKeyboardKey.f23,
2547 'F24': PhysicalKeyboardKey.f24,
2548 'F3': PhysicalKeyboardKey.f3,
2549 'F4': PhysicalKeyboardKey.f4,
2550 'F5': PhysicalKeyboardKey.f5,
2551 'F6': PhysicalKeyboardKey.f6,
2552 'F7': PhysicalKeyboardKey.f7,
2553 'F8': PhysicalKeyboardKey.f8,
2554 'F9': PhysicalKeyboardKey.f9,
2555 'Find': PhysicalKeyboardKey.find,
2556 'Fn': PhysicalKeyboardKey.fn,
2557 'FnLock': PhysicalKeyboardKey.fnLock,
2558 'GameButton1': PhysicalKeyboardKey.gameButton1,
2559 'GameButton10': PhysicalKeyboardKey.gameButton10,
2560 'GameButton11': PhysicalKeyboardKey.gameButton11,
2561 'GameButton12': PhysicalKeyboardKey.gameButton12,
2562 'GameButton13': PhysicalKeyboardKey.gameButton13,
2563 'GameButton14': PhysicalKeyboardKey.gameButton14,
2564 'GameButton15': PhysicalKeyboardKey.gameButton15,
2565 'GameButton16': PhysicalKeyboardKey.gameButton16,
2566 'GameButton2': PhysicalKeyboardKey.gameButton2,
2567 'GameButton3': PhysicalKeyboardKey.gameButton3,
2568 'GameButton4': PhysicalKeyboardKey.gameButton4,
2569 'GameButton5': PhysicalKeyboardKey.gameButton5,
2570 'GameButton6': PhysicalKeyboardKey.gameButton6,
2571 'GameButton7': PhysicalKeyboardKey.gameButton7,
2572 'GameButton8': PhysicalKeyboardKey.gameButton8,
2573 'GameButton9': PhysicalKeyboardKey.gameButton9,
2574 'GameButtonA': PhysicalKeyboardKey.gameButtonA,
2575 'GameButtonB': PhysicalKeyboardKey.gameButtonB,
2576 'GameButtonC': PhysicalKeyboardKey.gameButtonC,
2577 'GameButtonLeft1': PhysicalKeyboardKey.gameButtonLeft1,
2578 'GameButtonLeft2': PhysicalKeyboardKey.gameButtonLeft2,
2579 'GameButtonMode': PhysicalKeyboardKey.gameButtonMode,
2580 'GameButtonRight1': PhysicalKeyboardKey.gameButtonRight1,
2581 'GameButtonRight2': PhysicalKeyboardKey.gameButtonRight2,
2582 'GameButtonSelect': PhysicalKeyboardKey.gameButtonSelect,
2583 'GameButtonStart': PhysicalKeyboardKey.gameButtonStart,
2584 'GameButtonThumbLeft': PhysicalKeyboardKey.gameButtonThumbLeft,
2585 'GameButtonThumbRight': PhysicalKeyboardKey.gameButtonThumbRight,
2586 'GameButtonX': PhysicalKeyboardKey.gameButtonX,
2587 'GameButtonY': PhysicalKeyboardKey.gameButtonY,
2588 'GameButtonZ': PhysicalKeyboardKey.gameButtonZ,
2589 'Help': PhysicalKeyboardKey.help,
2590 'Home': PhysicalKeyboardKey.home,
2591 'Hyper': PhysicalKeyboardKey.hyper,
2592 'Insert': PhysicalKeyboardKey.insert,
2593 'IntlBackslash': PhysicalKeyboardKey.intlBackslash,
2594 'IntlRo': PhysicalKeyboardKey.intlRo,
2595 'IntlYen': PhysicalKeyboardKey.intlYen,
2596 'KanaMode': PhysicalKeyboardKey.kanaMode,
2597 'KeyA': PhysicalKeyboardKey.keyA,
2598 'KeyB': PhysicalKeyboardKey.keyB,
2599 'KeyC': PhysicalKeyboardKey.keyC,
2600 'KeyD': PhysicalKeyboardKey.keyD,
2601 'KeyE': PhysicalKeyboardKey.keyE,
2602 'KeyF': PhysicalKeyboardKey.keyF,
2603 'KeyG': PhysicalKeyboardKey.keyG,
2604 'KeyH': PhysicalKeyboardKey.keyH,
2605 'KeyI': PhysicalKeyboardKey.keyI,
2606 'KeyJ': PhysicalKeyboardKey.keyJ,
2607 'KeyK': PhysicalKeyboardKey.keyK,
2608 'KeyL': PhysicalKeyboardKey.keyL,
2609 'KeyM': PhysicalKeyboardKey.keyM,
2610 'KeyN': PhysicalKeyboardKey.keyN,
2611 'KeyO': PhysicalKeyboardKey.keyO,
2612 'KeyP': PhysicalKeyboardKey.keyP,
2613 'KeyQ': PhysicalKeyboardKey.keyQ,
2614 'KeyR': PhysicalKeyboardKey.keyR,
2615 'KeyS': PhysicalKeyboardKey.keyS,
2616 'KeyT': PhysicalKeyboardKey.keyT,
2617 'KeyU': PhysicalKeyboardKey.keyU,
2618 'KeyV': PhysicalKeyboardKey.keyV,
2619 'KeyW': PhysicalKeyboardKey.keyW,
2620 'KeyX': PhysicalKeyboardKey.keyX,
2621 'KeyY': PhysicalKeyboardKey.keyY,
2622 'KeyZ': PhysicalKeyboardKey.keyZ,
2623 'KeyboardLayoutSelect': PhysicalKeyboardKey.keyboardLayoutSelect,
2624 'Lang1': PhysicalKeyboardKey.lang1,
2625 'Lang2': PhysicalKeyboardKey.lang2,
2626 'Lang3': PhysicalKeyboardKey.lang3,
2627 'Lang4': PhysicalKeyboardKey.lang4,
2628 'Lang5': PhysicalKeyboardKey.lang5,
2629 'LaunchApp1': PhysicalKeyboardKey.launchApp1,
2630 'LaunchApp2': PhysicalKeyboardKey.launchApp2,
2631 'LaunchAssistant': PhysicalKeyboardKey.launchAssistant,
2632 'LaunchControlPanel': PhysicalKeyboardKey.launchControlPanel,
2633 'LaunchMail': PhysicalKeyboardKey.launchMail,
2634 'LaunchScreenSaver': PhysicalKeyboardKey.launchScreenSaver,
2635 'MailForward': PhysicalKeyboardKey.mailForward,
2636 'MailReply': PhysicalKeyboardKey.mailReply,
2637 'MailSend': PhysicalKeyboardKey.mailSend,
2638 'MediaFastForward': PhysicalKeyboardKey.mediaFastForward,
2639 'MediaPause': PhysicalKeyboardKey.mediaPause,
2640 'MediaPlay': PhysicalKeyboardKey.mediaPlay,
2641 'MediaPlayPause': PhysicalKeyboardKey.mediaPlayPause,
2642 'MediaRecord': PhysicalKeyboardKey.mediaRecord,
2643 'MediaRewind': PhysicalKeyboardKey.mediaRewind,
2644 'MediaSelect': PhysicalKeyboardKey.mediaSelect,
2645 'MediaStop': PhysicalKeyboardKey.mediaStop,
2646 'MediaTrackNext': PhysicalKeyboardKey.mediaTrackNext,
2647 'MediaTrackPrevious': PhysicalKeyboardKey.mediaTrackPrevious,
2648 'MetaLeft': PhysicalKeyboardKey.metaLeft,
2649 'MetaRight': PhysicalKeyboardKey.metaRight,
2650 'MicrophoneMuteToggle': PhysicalKeyboardKey.microphoneMuteToggle,
2651 'Minus': PhysicalKeyboardKey.minus,
2652 'NonConvert': PhysicalKeyboardKey.nonConvert,
2653 'NumLock': PhysicalKeyboardKey.numLock,
2654 'Numpad0': PhysicalKeyboardKey.numpad0,
2655 'Numpad1': PhysicalKeyboardKey.numpad1,
2656 'Numpad2': PhysicalKeyboardKey.numpad2,
2657 'Numpad3': PhysicalKeyboardKey.numpad3,
2658 'Numpad4': PhysicalKeyboardKey.numpad4,
2659 'Numpad5': PhysicalKeyboardKey.numpad5,
2660 'Numpad6': PhysicalKeyboardKey.numpad6,
2661 'Numpad7': PhysicalKeyboardKey.numpad7,
2662 'Numpad8': PhysicalKeyboardKey.numpad8,
2663 'Numpad9': PhysicalKeyboardKey.numpad9,
2664 'NumpadAdd': PhysicalKeyboardKey.numpadAdd,
2665 'NumpadBackspace': PhysicalKeyboardKey.numpadBackspace,
2666 'NumpadClear': PhysicalKeyboardKey.numpadClear,
2667 'NumpadClearEntry': PhysicalKeyboardKey.numpadClearEntry,
2668 'NumpadComma': PhysicalKeyboardKey.numpadComma,
2669 'NumpadDecimal': PhysicalKeyboardKey.numpadDecimal,
2670 'NumpadDivide': PhysicalKeyboardKey.numpadDivide,
2671 'NumpadEnter': PhysicalKeyboardKey.numpadEnter,
2672 'NumpadEqual': PhysicalKeyboardKey.numpadEqual,
2673 'NumpadMemoryAdd': PhysicalKeyboardKey.numpadMemoryAdd,
2674 'NumpadMemoryClear': PhysicalKeyboardKey.numpadMemoryClear,
2675 'NumpadMemoryRecall': PhysicalKeyboardKey.numpadMemoryRecall,
2676 'NumpadMemoryStore': PhysicalKeyboardKey.numpadMemoryStore,
2677 'NumpadMemorySubtract': PhysicalKeyboardKey.numpadMemorySubtract,
2678 'NumpadMultiply': PhysicalKeyboardKey.numpadMultiply,
2679 'NumpadParenLeft': PhysicalKeyboardKey.numpadParenLeft,
2680 'NumpadParenRight': PhysicalKeyboardKey.numpadParenRight,
2681 'NumpadSubtract': PhysicalKeyboardKey.numpadSubtract,
2682 'Open': PhysicalKeyboardKey.open,
2683 'PageDown': PhysicalKeyboardKey.pageDown,
2684 'PageUp': PhysicalKeyboardKey.pageUp,
2685 'Paste': PhysicalKeyboardKey.paste,
2686 'Pause': PhysicalKeyboardKey.pause,
2687 'Period': PhysicalKeyboardKey.period,
2688 'Power': PhysicalKeyboardKey.power,
2689 'PrintScreen': PhysicalKeyboardKey.printScreen,
2690 'PrivacyScreenToggle': PhysicalKeyboardKey.privacyScreenToggle,
2691 'Props': PhysicalKeyboardKey.props,
2692 'Quote': PhysicalKeyboardKey.quote,
2693 'Resume': PhysicalKeyboardKey.resume,
2694 'ScrollLock': PhysicalKeyboardKey.scrollLock,
2695 'Select': PhysicalKeyboardKey.select,
2696 'SelectTask': PhysicalKeyboardKey.selectTask,
2697 'Semicolon': PhysicalKeyboardKey.semicolon,
2698 'ShiftLeft': PhysicalKeyboardKey.shiftLeft,
2699 'ShiftRight': PhysicalKeyboardKey.shiftRight,
2700 'ShowAllWindows': PhysicalKeyboardKey.showAllWindows,
2701 'Slash': PhysicalKeyboardKey.slash,
2702 'Sleep': PhysicalKeyboardKey.sleep,
2703 'Space': PhysicalKeyboardKey.space,
2704 'Super': PhysicalKeyboardKey.superKey,
2705 'Suspend': PhysicalKeyboardKey.suspend,
2706 'Tab': PhysicalKeyboardKey.tab,
2707 'Turbo': PhysicalKeyboardKey.turbo,
2708 'Undo': PhysicalKeyboardKey.undo,
2709 'WakeUp': PhysicalKeyboardKey.wakeUp,
2710 'ZoomToggle': PhysicalKeyboardKey.zoomToggle,
2711};
2712
2713/// A map of Web KeyboardEvent codes which have printable representations, but appear
2714/// on the number pad. Used to provide different key objects for keys like
2715/// KEY_EQUALS and NUMPAD_EQUALS.
2716const Map<String, LogicalKeyboardKey> kWebNumPadMap = <String, LogicalKeyboardKey>{
2717 'Numpad0': LogicalKeyboardKey.numpad0,
2718 'Numpad1': LogicalKeyboardKey.numpad1,
2719 'Numpad2': LogicalKeyboardKey.numpad2,
2720 'Numpad3': LogicalKeyboardKey.numpad3,
2721 'Numpad4': LogicalKeyboardKey.numpad4,
2722 'Numpad5': LogicalKeyboardKey.numpad5,
2723 'Numpad6': LogicalKeyboardKey.numpad6,
2724 'Numpad7': LogicalKeyboardKey.numpad7,
2725 'Numpad8': LogicalKeyboardKey.numpad8,
2726 'Numpad9': LogicalKeyboardKey.numpad9,
2727 'NumpadAdd': LogicalKeyboardKey.numpadAdd,
2728 'NumpadComma': LogicalKeyboardKey.numpadComma,
2729 'NumpadDecimal': LogicalKeyboardKey.numpadDecimal,
2730 'NumpadDivide': LogicalKeyboardKey.numpadDivide,
2731 'NumpadEqual': LogicalKeyboardKey.numpadEqual,
2732 'NumpadMultiply': LogicalKeyboardKey.numpadMultiply,
2733 'NumpadParenLeft': LogicalKeyboardKey.numpadParenLeft,
2734 'NumpadParenRight': LogicalKeyboardKey.numpadParenRight,
2735 'NumpadSubtract': LogicalKeyboardKey.numpadSubtract,
2736};
2737
2738/// A map of Web KeyboardEvent keys which needs to be decided based on location,
2739/// typically for numpad keys and modifier keys. Used to provide different key
2740/// objects for keys like KEY_EQUALS and NUMPAD_EQUALS.
2741const Map<String, List<LogicalKeyboardKey?>> kWebLocationMap = <String, List<LogicalKeyboardKey?>>{
2742 '*': <LogicalKeyboardKey?>[
2743 LogicalKeyboardKey.asterisk,
2744 null,
2745 null,
2746 LogicalKeyboardKey.numpadMultiply,
2747 ],
2748 '+': <LogicalKeyboardKey?>[LogicalKeyboardKey.add, null, null, LogicalKeyboardKey.numpadAdd],
2749 '-': <LogicalKeyboardKey?>[
2750 LogicalKeyboardKey.minus,
2751 null,
2752 null,
2753 LogicalKeyboardKey.numpadSubtract,
2754 ],
2755 '.': <LogicalKeyboardKey?>[
2756 LogicalKeyboardKey.period,
2757 null,
2758 null,
2759 LogicalKeyboardKey.numpadDecimal,
2760 ],
2761 '/': <LogicalKeyboardKey?>[LogicalKeyboardKey.slash, null, null, LogicalKeyboardKey.numpadDivide],
2762 '0': <LogicalKeyboardKey?>[LogicalKeyboardKey.digit0, null, null, LogicalKeyboardKey.numpad0],
2763 '1': <LogicalKeyboardKey?>[LogicalKeyboardKey.digit1, null, null, LogicalKeyboardKey.numpad1],
2764 '2': <LogicalKeyboardKey?>[LogicalKeyboardKey.digit2, null, null, LogicalKeyboardKey.numpad2],
2765 '3': <LogicalKeyboardKey?>[LogicalKeyboardKey.digit3, null, null, LogicalKeyboardKey.numpad3],
2766 '4': <LogicalKeyboardKey?>[LogicalKeyboardKey.digit4, null, null, LogicalKeyboardKey.numpad4],
2767 '5': <LogicalKeyboardKey?>[LogicalKeyboardKey.digit5, null, null, LogicalKeyboardKey.numpad5],
2768 '6': <LogicalKeyboardKey?>[LogicalKeyboardKey.digit6, null, null, LogicalKeyboardKey.numpad6],
2769 '7': <LogicalKeyboardKey?>[LogicalKeyboardKey.digit7, null, null, LogicalKeyboardKey.numpad7],
2770 '8': <LogicalKeyboardKey?>[LogicalKeyboardKey.digit8, null, null, LogicalKeyboardKey.numpad8],
2771 '9': <LogicalKeyboardKey?>[LogicalKeyboardKey.digit9, null, null, LogicalKeyboardKey.numpad9],
2772 'Alt': <LogicalKeyboardKey?>[
2773 LogicalKeyboardKey.altLeft,
2774 LogicalKeyboardKey.altLeft,
2775 LogicalKeyboardKey.altRight,
2776 null,
2777 ],
2778 'AltGraph': <LogicalKeyboardKey?>[
2779 LogicalKeyboardKey.altGraph,
2780 null,
2781 LogicalKeyboardKey.altGraph,
2782 null,
2783 ],
2784 'ArrowDown': <LogicalKeyboardKey?>[
2785 LogicalKeyboardKey.arrowDown,
2786 null,
2787 null,
2788 LogicalKeyboardKey.numpad2,
2789 ],
2790 'ArrowLeft': <LogicalKeyboardKey?>[
2791 LogicalKeyboardKey.arrowLeft,
2792 null,
2793 null,
2794 LogicalKeyboardKey.numpad4,
2795 ],
2796 'ArrowRight': <LogicalKeyboardKey?>[
2797 LogicalKeyboardKey.arrowRight,
2798 null,
2799 null,
2800 LogicalKeyboardKey.numpad6,
2801 ],
2802 'ArrowUp': <LogicalKeyboardKey?>[
2803 LogicalKeyboardKey.arrowUp,
2804 null,
2805 null,
2806 LogicalKeyboardKey.numpad8,
2807 ],
2808 'Clear': <LogicalKeyboardKey?>[LogicalKeyboardKey.clear, null, null, LogicalKeyboardKey.numpad5],
2809 'Control': <LogicalKeyboardKey?>[
2810 LogicalKeyboardKey.controlLeft,
2811 LogicalKeyboardKey.controlLeft,
2812 LogicalKeyboardKey.controlRight,
2813 null,
2814 ],
2815 'Delete': <LogicalKeyboardKey?>[
2816 LogicalKeyboardKey.delete,
2817 null,
2818 null,
2819 LogicalKeyboardKey.numpadDecimal,
2820 ],
2821 'End': <LogicalKeyboardKey?>[LogicalKeyboardKey.end, null, null, LogicalKeyboardKey.numpad1],
2822 'Enter': <LogicalKeyboardKey?>[
2823 LogicalKeyboardKey.enter,
2824 null,
2825 null,
2826 LogicalKeyboardKey.numpadEnter,
2827 ],
2828 'Home': <LogicalKeyboardKey?>[LogicalKeyboardKey.home, null, null, LogicalKeyboardKey.numpad7],
2829 'Insert': <LogicalKeyboardKey?>[
2830 LogicalKeyboardKey.insert,
2831 null,
2832 null,
2833 LogicalKeyboardKey.numpad0,
2834 ],
2835 'Meta': <LogicalKeyboardKey?>[
2836 LogicalKeyboardKey.metaLeft,
2837 LogicalKeyboardKey.metaLeft,
2838 LogicalKeyboardKey.metaRight,
2839 null,
2840 ],
2841 'PageDown': <LogicalKeyboardKey?>[
2842 LogicalKeyboardKey.pageDown,
2843 null,
2844 null,
2845 LogicalKeyboardKey.numpad3,
2846 ],
2847 'PageUp': <LogicalKeyboardKey?>[
2848 LogicalKeyboardKey.pageUp,
2849 null,
2850 null,
2851 LogicalKeyboardKey.numpad9,
2852 ],
2853 'Shift': <LogicalKeyboardKey?>[
2854 LogicalKeyboardKey.shiftLeft,
2855 LogicalKeyboardKey.shiftLeft,
2856 LogicalKeyboardKey.shiftRight,
2857 null,
2858 ],
2859};
2860
2861/// Maps Windows KeyboardEvent codes to the matching [LogicalKeyboardKey].
2862const Map<int, LogicalKeyboardKey> kWindowsToLogicalKey = <int, LogicalKeyboardKey>{
2863 3: LogicalKeyboardKey.cancel,
2864 8: LogicalKeyboardKey.backspace,
2865 9: LogicalKeyboardKey.tab,
2866 12: LogicalKeyboardKey.clear,
2867 13: LogicalKeyboardKey.enter,
2868 16: LogicalKeyboardKey.shiftLeft,
2869 17: LogicalKeyboardKey.controlLeft,
2870 19: LogicalKeyboardKey.pause,
2871 20: LogicalKeyboardKey.capsLock,
2872 21: LogicalKeyboardKey.lang1,
2873 23: LogicalKeyboardKey.junjaMode,
2874 24: LogicalKeyboardKey.finalMode,
2875 25: LogicalKeyboardKey.kanjiMode,
2876 27: LogicalKeyboardKey.escape,
2877 28: LogicalKeyboardKey.convert,
2878 30: LogicalKeyboardKey.accept,
2879 31: LogicalKeyboardKey.modeChange,
2880 32: LogicalKeyboardKey.space,
2881 33: LogicalKeyboardKey.pageUp,
2882 34: LogicalKeyboardKey.pageDown,
2883 35: LogicalKeyboardKey.end,
2884 36: LogicalKeyboardKey.home,
2885 37: LogicalKeyboardKey.arrowLeft,
2886 38: LogicalKeyboardKey.arrowUp,
2887 39: LogicalKeyboardKey.arrowRight,
2888 40: LogicalKeyboardKey.arrowDown,
2889 41: LogicalKeyboardKey.select,
2890 42: LogicalKeyboardKey.print,
2891 43: LogicalKeyboardKey.execute,
2892 44: LogicalKeyboardKey.printScreen,
2893 45: LogicalKeyboardKey.insert,
2894 46: LogicalKeyboardKey.delete,
2895 47: LogicalKeyboardKey.help,
2896 48: LogicalKeyboardKey.digit0,
2897 49: LogicalKeyboardKey.digit1,
2898 50: LogicalKeyboardKey.digit2,
2899 51: LogicalKeyboardKey.digit3,
2900 52: LogicalKeyboardKey.digit4,
2901 53: LogicalKeyboardKey.digit5,
2902 54: LogicalKeyboardKey.digit6,
2903 55: LogicalKeyboardKey.digit7,
2904 56: LogicalKeyboardKey.digit8,
2905 57: LogicalKeyboardKey.digit9,
2906 65: LogicalKeyboardKey.keyA,
2907 66: LogicalKeyboardKey.keyB,
2908 67: LogicalKeyboardKey.keyC,
2909 68: LogicalKeyboardKey.keyD,
2910 69: LogicalKeyboardKey.keyE,
2911 70: LogicalKeyboardKey.keyF,
2912 71: LogicalKeyboardKey.keyG,
2913 72: LogicalKeyboardKey.keyH,
2914 73: LogicalKeyboardKey.keyI,
2915 74: LogicalKeyboardKey.keyJ,
2916 75: LogicalKeyboardKey.keyK,
2917 76: LogicalKeyboardKey.keyL,
2918 77: LogicalKeyboardKey.keyM,
2919 78: LogicalKeyboardKey.keyN,
2920 79: LogicalKeyboardKey.keyO,
2921 80: LogicalKeyboardKey.keyP,
2922 81: LogicalKeyboardKey.keyQ,
2923 82: LogicalKeyboardKey.keyR,
2924 83: LogicalKeyboardKey.keyS,
2925 84: LogicalKeyboardKey.keyT,
2926 85: LogicalKeyboardKey.keyU,
2927 86: LogicalKeyboardKey.keyV,
2928 87: LogicalKeyboardKey.keyW,
2929 88: LogicalKeyboardKey.keyX,
2930 89: LogicalKeyboardKey.keyY,
2931 90: LogicalKeyboardKey.keyZ,
2932 91: LogicalKeyboardKey.metaLeft,
2933 92: LogicalKeyboardKey.metaRight,
2934 93: LogicalKeyboardKey.contextMenu,
2935 95: LogicalKeyboardKey.sleep,
2936 96: LogicalKeyboardKey.numpad0,
2937 97: LogicalKeyboardKey.numpad1,
2938 98: LogicalKeyboardKey.numpad2,
2939 99: LogicalKeyboardKey.numpad3,
2940 100: LogicalKeyboardKey.numpad4,
2941 101: LogicalKeyboardKey.numpad5,
2942 102: LogicalKeyboardKey.numpad6,
2943 103: LogicalKeyboardKey.numpad7,
2944 104: LogicalKeyboardKey.numpad8,
2945 105: LogicalKeyboardKey.numpad9,
2946 106: LogicalKeyboardKey.numpadMultiply,
2947 107: LogicalKeyboardKey.numpadAdd,
2948 108: LogicalKeyboardKey.numpadComma,
2949 109: LogicalKeyboardKey.numpadSubtract,
2950 110: LogicalKeyboardKey.numpadDecimal,
2951 111: LogicalKeyboardKey.numpadDivide,
2952 112: LogicalKeyboardKey.f1,
2953 113: LogicalKeyboardKey.f2,
2954 114: LogicalKeyboardKey.f3,
2955 115: LogicalKeyboardKey.f4,
2956 116: LogicalKeyboardKey.f5,
2957 117: LogicalKeyboardKey.f6,
2958 118: LogicalKeyboardKey.f7,
2959 119: LogicalKeyboardKey.f8,
2960 120: LogicalKeyboardKey.f9,
2961 121: LogicalKeyboardKey.f10,
2962 122: LogicalKeyboardKey.f11,
2963 123: LogicalKeyboardKey.f12,
2964 124: LogicalKeyboardKey.f13,
2965 125: LogicalKeyboardKey.f14,
2966 126: LogicalKeyboardKey.f15,
2967 127: LogicalKeyboardKey.f16,
2968 128: LogicalKeyboardKey.f17,
2969 129: LogicalKeyboardKey.f18,
2970 130: LogicalKeyboardKey.f19,
2971 131: LogicalKeyboardKey.f20,
2972 132: LogicalKeyboardKey.f21,
2973 133: LogicalKeyboardKey.f22,
2974 134: LogicalKeyboardKey.f23,
2975 135: LogicalKeyboardKey.f24,
2976 144: LogicalKeyboardKey.numLock,
2977 145: LogicalKeyboardKey.scrollLock,
2978 146: LogicalKeyboardKey.numpadEqual,
2979 160: LogicalKeyboardKey.shiftLeft,
2980 161: LogicalKeyboardKey.shiftRight,
2981 162: LogicalKeyboardKey.controlLeft,
2982 163: LogicalKeyboardKey.controlRight,
2983 164: LogicalKeyboardKey.altLeft,
2984 165: LogicalKeyboardKey.altRight,
2985 166: LogicalKeyboardKey.browserBack,
2986 167: LogicalKeyboardKey.browserForward,
2987 168: LogicalKeyboardKey.browserRefresh,
2988 169: LogicalKeyboardKey.browserStop,
2989 170: LogicalKeyboardKey.browserSearch,
2990 171: LogicalKeyboardKey.browserFavorites,
2991 172: LogicalKeyboardKey.browserHome,
2992 173: LogicalKeyboardKey.audioVolumeMute,
2993 174: LogicalKeyboardKey.audioVolumeDown,
2994 175: LogicalKeyboardKey.audioVolumeUp,
2995 178: LogicalKeyboardKey.mediaStop,
2996 179: LogicalKeyboardKey.mediaPlayPause,
2997 180: LogicalKeyboardKey.launchMail,
2998 186: LogicalKeyboardKey.semicolon,
2999 187: LogicalKeyboardKey.equal,
3000 188: LogicalKeyboardKey.comma,
3001 189: LogicalKeyboardKey.minus,
3002 190: LogicalKeyboardKey.period,
3003 191: LogicalKeyboardKey.slash,
3004 192: LogicalKeyboardKey.backquote,
3005 195: LogicalKeyboardKey.gameButton8,
3006 196: LogicalKeyboardKey.gameButton9,
3007 197: LogicalKeyboardKey.gameButton10,
3008 198: LogicalKeyboardKey.gameButton11,
3009 199: LogicalKeyboardKey.gameButton12,
3010 200: LogicalKeyboardKey.gameButton13,
3011 201: LogicalKeyboardKey.gameButton14,
3012 202: LogicalKeyboardKey.gameButton15,
3013 203: LogicalKeyboardKey.gameButton16,
3014 219: LogicalKeyboardKey.bracketLeft,
3015 220: LogicalKeyboardKey.backslash,
3016 221: LogicalKeyboardKey.bracketRight,
3017 222: LogicalKeyboardKey.quote,
3018 246: LogicalKeyboardKey.attn,
3019 250: LogicalKeyboardKey.play,
3020};
3021
3022/// Maps Windows KeyboardEvent codes to the matching [PhysicalKeyboardKey].
3023const Map<int, PhysicalKeyboardKey> kWindowsToPhysicalKey = <int, PhysicalKeyboardKey>{
3024 1: PhysicalKeyboardKey.escape,
3025 2: PhysicalKeyboardKey.digit1,
3026 3: PhysicalKeyboardKey.digit2,
3027 4: PhysicalKeyboardKey.digit3,
3028 5: PhysicalKeyboardKey.digit4,
3029 6: PhysicalKeyboardKey.digit5,
3030 7: PhysicalKeyboardKey.digit6,
3031 8: PhysicalKeyboardKey.digit7,
3032 9: PhysicalKeyboardKey.digit8,
3033 10: PhysicalKeyboardKey.digit9,
3034 11: PhysicalKeyboardKey.digit0,
3035 12: PhysicalKeyboardKey.minus,
3036 13: PhysicalKeyboardKey.equal,
3037 14: PhysicalKeyboardKey.backspace,
3038 15: PhysicalKeyboardKey.tab,
3039 16: PhysicalKeyboardKey.keyQ,
3040 17: PhysicalKeyboardKey.keyW,
3041 18: PhysicalKeyboardKey.keyE,
3042 19: PhysicalKeyboardKey.keyR,
3043 20: PhysicalKeyboardKey.keyT,
3044 21: PhysicalKeyboardKey.keyY,
3045 22: PhysicalKeyboardKey.keyU,
3046 23: PhysicalKeyboardKey.keyI,
3047 24: PhysicalKeyboardKey.keyO,
3048 25: PhysicalKeyboardKey.keyP,
3049 26: PhysicalKeyboardKey.bracketLeft,
3050 27: PhysicalKeyboardKey.bracketRight,
3051 28: PhysicalKeyboardKey.enter,
3052 29: PhysicalKeyboardKey.controlLeft,
3053 30: PhysicalKeyboardKey.keyA,
3054 31: PhysicalKeyboardKey.keyS,
3055 32: PhysicalKeyboardKey.keyD,
3056 33: PhysicalKeyboardKey.keyF,
3057 34: PhysicalKeyboardKey.keyG,
3058 35: PhysicalKeyboardKey.keyH,
3059 36: PhysicalKeyboardKey.keyJ,
3060 37: PhysicalKeyboardKey.keyK,
3061 38: PhysicalKeyboardKey.keyL,
3062 39: PhysicalKeyboardKey.semicolon,
3063 40: PhysicalKeyboardKey.quote,
3064 41: PhysicalKeyboardKey.backquote,
3065 42: PhysicalKeyboardKey.shiftLeft,
3066 43: PhysicalKeyboardKey.backslash,
3067 44: PhysicalKeyboardKey.keyZ,
3068 45: PhysicalKeyboardKey.keyX,
3069 46: PhysicalKeyboardKey.keyC,
3070 47: PhysicalKeyboardKey.keyV,
3071 48: PhysicalKeyboardKey.keyB,
3072 49: PhysicalKeyboardKey.keyN,
3073 50: PhysicalKeyboardKey.keyM,
3074 51: PhysicalKeyboardKey.comma,
3075 52: PhysicalKeyboardKey.period,
3076 53: PhysicalKeyboardKey.slash,
3077 54: PhysicalKeyboardKey.shiftRight,
3078 55: PhysicalKeyboardKey.numpadMultiply,
3079 56: PhysicalKeyboardKey.altLeft,
3080 57: PhysicalKeyboardKey.space,
3081 58: PhysicalKeyboardKey.capsLock,
3082 59: PhysicalKeyboardKey.f1,
3083 60: PhysicalKeyboardKey.f2,
3084 61: PhysicalKeyboardKey.f3,
3085 62: PhysicalKeyboardKey.f4,
3086 63: PhysicalKeyboardKey.f5,
3087 64: PhysicalKeyboardKey.f6,
3088 65: PhysicalKeyboardKey.f7,
3089 66: PhysicalKeyboardKey.f8,
3090 67: PhysicalKeyboardKey.f9,
3091 68: PhysicalKeyboardKey.f10,
3092 69: PhysicalKeyboardKey.pause,
3093 70: PhysicalKeyboardKey.scrollLock,
3094 71: PhysicalKeyboardKey.numpad7,
3095 72: PhysicalKeyboardKey.numpad8,
3096 73: PhysicalKeyboardKey.numpad9,
3097 74: PhysicalKeyboardKey.numpadSubtract,
3098 75: PhysicalKeyboardKey.numpad4,
3099 76: PhysicalKeyboardKey.numpad5,
3100 77: PhysicalKeyboardKey.numpad6,
3101 78: PhysicalKeyboardKey.numpadAdd,
3102 79: PhysicalKeyboardKey.numpad1,
3103 80: PhysicalKeyboardKey.numpad2,
3104 81: PhysicalKeyboardKey.numpad3,
3105 82: PhysicalKeyboardKey.numpad0,
3106 83: PhysicalKeyboardKey.numpadDecimal,
3107 86: PhysicalKeyboardKey.intlBackslash,
3108 87: PhysicalKeyboardKey.f11,
3109 88: PhysicalKeyboardKey.f12,
3110 89: PhysicalKeyboardKey.numpadEqual,
3111 100: PhysicalKeyboardKey.f13,
3112 101: PhysicalKeyboardKey.f14,
3113 102: PhysicalKeyboardKey.f15,
3114 103: PhysicalKeyboardKey.f16,
3115 104: PhysicalKeyboardKey.f17,
3116 105: PhysicalKeyboardKey.f18,
3117 106: PhysicalKeyboardKey.f19,
3118 107: PhysicalKeyboardKey.f20,
3119 108: PhysicalKeyboardKey.f21,
3120 109: PhysicalKeyboardKey.f22,
3121 110: PhysicalKeyboardKey.f23,
3122 112: PhysicalKeyboardKey.kanaMode,
3123 113: PhysicalKeyboardKey.lang2,
3124 114: PhysicalKeyboardKey.lang1,
3125 115: PhysicalKeyboardKey.intlRo,
3126 118: PhysicalKeyboardKey.f24,
3127 119: PhysicalKeyboardKey.lang4,
3128 120: PhysicalKeyboardKey.lang3,
3129 121: PhysicalKeyboardKey.convert,
3130 123: PhysicalKeyboardKey.nonConvert,
3131 125: PhysicalKeyboardKey.intlYen,
3132 126: PhysicalKeyboardKey.numpadComma,
3133 252: PhysicalKeyboardKey.usbPostFail,
3134 255: PhysicalKeyboardKey.usbErrorRollOver,
3135 57352: PhysicalKeyboardKey.undo,
3136 57354: PhysicalKeyboardKey.paste,
3137 57360: PhysicalKeyboardKey.mediaTrackPrevious,
3138 57367: PhysicalKeyboardKey.cut,
3139 57368: PhysicalKeyboardKey.copy,
3140 57369: PhysicalKeyboardKey.mediaTrackNext,
3141 57372: PhysicalKeyboardKey.numpadEnter,
3142 57373: PhysicalKeyboardKey.controlRight,
3143 57376: PhysicalKeyboardKey.audioVolumeMute,
3144 57377: PhysicalKeyboardKey.launchApp2,
3145 57378: PhysicalKeyboardKey.mediaPlayPause,
3146 57380: PhysicalKeyboardKey.mediaStop,
3147 57388: PhysicalKeyboardKey.eject,
3148 57390: PhysicalKeyboardKey.audioVolumeDown,
3149 57392: PhysicalKeyboardKey.audioVolumeUp,
3150 57394: PhysicalKeyboardKey.browserHome,
3151 57397: PhysicalKeyboardKey.numpadDivide,
3152 57399: PhysicalKeyboardKey.printScreen,
3153 57400: PhysicalKeyboardKey.altRight,
3154 57403: PhysicalKeyboardKey.help,
3155 57413: PhysicalKeyboardKey.numLock,
3156 57415: PhysicalKeyboardKey.home,
3157 57416: PhysicalKeyboardKey.arrowUp,
3158 57417: PhysicalKeyboardKey.pageUp,
3159 57419: PhysicalKeyboardKey.arrowLeft,
3160 57421: PhysicalKeyboardKey.arrowRight,
3161 57423: PhysicalKeyboardKey.end,
3162 57424: PhysicalKeyboardKey.arrowDown,
3163 57425: PhysicalKeyboardKey.pageDown,
3164 57426: PhysicalKeyboardKey.insert,
3165 57427: PhysicalKeyboardKey.delete,
3166 57435: PhysicalKeyboardKey.metaLeft,
3167 57436: PhysicalKeyboardKey.metaRight,
3168 57437: PhysicalKeyboardKey.contextMenu,
3169 57438: PhysicalKeyboardKey.power,
3170 57439: PhysicalKeyboardKey.sleep,
3171 57443: PhysicalKeyboardKey.wakeUp,
3172 57445: PhysicalKeyboardKey.browserSearch,
3173 57446: PhysicalKeyboardKey.browserFavorites,
3174 57447: PhysicalKeyboardKey.browserRefresh,
3175 57448: PhysicalKeyboardKey.browserStop,
3176 57449: PhysicalKeyboardKey.browserForward,
3177 57450: PhysicalKeyboardKey.browserBack,
3178 57451: PhysicalKeyboardKey.launchApp1,
3179 57452: PhysicalKeyboardKey.launchMail,
3180 57453: PhysicalKeyboardKey.mediaSelect,
3181};
3182
3183/// A map of Windows KeyboardEvent codes which have printable representations, but appear
3184/// on the number pad. Used to provide different key objects for keys like
3185/// KEY_EQUALS and NUMPAD_EQUALS.
3186const Map<int, LogicalKeyboardKey> kWindowsNumPadMap = <int, LogicalKeyboardKey>{
3187 96: LogicalKeyboardKey.numpad0,
3188 97: LogicalKeyboardKey.numpad1,
3189 98: LogicalKeyboardKey.numpad2,
3190 99: LogicalKeyboardKey.numpad3,
3191 100: LogicalKeyboardKey.numpad4,
3192 101: LogicalKeyboardKey.numpad5,
3193 102: LogicalKeyboardKey.numpad6,
3194 103: LogicalKeyboardKey.numpad7,
3195 104: LogicalKeyboardKey.numpad8,
3196 105: LogicalKeyboardKey.numpad9,
3197 106: LogicalKeyboardKey.numpadMultiply,
3198 107: LogicalKeyboardKey.numpadAdd,
3199 108: LogicalKeyboardKey.numpadComma,
3200 109: LogicalKeyboardKey.numpadSubtract,
3201 110: LogicalKeyboardKey.numpadDecimal,
3202 111: LogicalKeyboardKey.numpadDivide,
3203 146: LogicalKeyboardKey.numpadEqual,
3204};
3205