// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // DO NOT EDIT -- DO NOT EDIT -- DO NOT EDIT // This file is generated by dev/tools/gen_keycodes/bin/gen_keycodes.dart and // should not be edited directly. // // Edit the template dev/tools/gen_keycodes/data/keyboard_maps.tmpl instead. // See dev/tools/gen_keycodes/README.md for more information. import 'keyboard_key.g.dart'; export 'keyboard_key.g.dart' show LogicalKeyboardKey, PhysicalKeyboardKey; /// Maps Android-specific key codes to the matching [LogicalKeyboardKey]. const Map kAndroidToLogicalKey = { 3: LogicalKeyboardKey.goHome, 4: LogicalKeyboardKey.goBack, 5: LogicalKeyboardKey.call, 6: LogicalKeyboardKey.endCall, 7: LogicalKeyboardKey.digit0, 8: LogicalKeyboardKey.digit1, 9: LogicalKeyboardKey.digit2, 10: LogicalKeyboardKey.digit3, 11: LogicalKeyboardKey.digit4, 12: LogicalKeyboardKey.digit5, 13: LogicalKeyboardKey.digit6, 14: LogicalKeyboardKey.digit7, 15: LogicalKeyboardKey.digit8, 16: LogicalKeyboardKey.digit9, 17: LogicalKeyboardKey.asterisk, 18: LogicalKeyboardKey.numberSign, 19: LogicalKeyboardKey.arrowUp, 20: LogicalKeyboardKey.arrowDown, 21: LogicalKeyboardKey.arrowLeft, 22: LogicalKeyboardKey.arrowRight, 23: LogicalKeyboardKey.select, 24: LogicalKeyboardKey.audioVolumeUp, 25: LogicalKeyboardKey.audioVolumeDown, 26: LogicalKeyboardKey.power, 27: LogicalKeyboardKey.camera, 28: LogicalKeyboardKey.clear, 29: LogicalKeyboardKey.keyA, 30: LogicalKeyboardKey.keyB, 31: LogicalKeyboardKey.keyC, 32: LogicalKeyboardKey.keyD, 33: LogicalKeyboardKey.keyE, 34: LogicalKeyboardKey.keyF, 35: LogicalKeyboardKey.keyG, 36: LogicalKeyboardKey.keyH, 37: LogicalKeyboardKey.keyI, 38: LogicalKeyboardKey.keyJ, 39: LogicalKeyboardKey.keyK, 40: LogicalKeyboardKey.keyL, 41: LogicalKeyboardKey.keyM, 42: LogicalKeyboardKey.keyN, 43: LogicalKeyboardKey.keyO, 44: LogicalKeyboardKey.keyP, 45: LogicalKeyboardKey.keyQ, 46: LogicalKeyboardKey.keyR, 47: LogicalKeyboardKey.keyS, 48: LogicalKeyboardKey.keyT, 49: LogicalKeyboardKey.keyU, 50: LogicalKeyboardKey.keyV, 51: LogicalKeyboardKey.keyW, 52: LogicalKeyboardKey.keyX, 53: LogicalKeyboardKey.keyY, 54: LogicalKeyboardKey.keyZ, 55: LogicalKeyboardKey.comma, 56: LogicalKeyboardKey.period, 57: LogicalKeyboardKey.altLeft, 58: LogicalKeyboardKey.altRight, 59: LogicalKeyboardKey.shiftLeft, 60: LogicalKeyboardKey.shiftRight, 61: LogicalKeyboardKey.tab, 62: LogicalKeyboardKey.space, 63: LogicalKeyboardKey.symbol, 64: LogicalKeyboardKey.launchWebBrowser, 65: LogicalKeyboardKey.launchMail, 66: LogicalKeyboardKey.enter, 67: LogicalKeyboardKey.backspace, 68: LogicalKeyboardKey.backquote, 69: LogicalKeyboardKey.minus, 70: LogicalKeyboardKey.equal, 71: LogicalKeyboardKey.bracketLeft, 72: LogicalKeyboardKey.bracketRight, 73: LogicalKeyboardKey.backslash, 74: LogicalKeyboardKey.semicolon, 75: LogicalKeyboardKey.quote, 76: LogicalKeyboardKey.slash, 77: LogicalKeyboardKey.at, 79: LogicalKeyboardKey.headsetHook, 80: LogicalKeyboardKey.cameraFocus, 81: LogicalKeyboardKey.add, 82: LogicalKeyboardKey.contextMenu, 83: LogicalKeyboardKey.notification, 84: LogicalKeyboardKey.browserSearch, 85: LogicalKeyboardKey.mediaPlayPause, 86: LogicalKeyboardKey.mediaStop, 87: LogicalKeyboardKey.mediaTrackNext, 88: LogicalKeyboardKey.mediaTrackPrevious, 89: LogicalKeyboardKey.mediaRewind, 90: LogicalKeyboardKey.mediaFastForward, 91: LogicalKeyboardKey.microphoneVolumeMute, 92: LogicalKeyboardKey.pageUp, 93: LogicalKeyboardKey.pageDown, 95: LogicalKeyboardKey.modeChange, 96: LogicalKeyboardKey.gameButtonA, 97: LogicalKeyboardKey.gameButtonB, 98: LogicalKeyboardKey.gameButtonC, 99: LogicalKeyboardKey.gameButtonX, 100: LogicalKeyboardKey.gameButtonY, 101: LogicalKeyboardKey.gameButtonZ, 102: LogicalKeyboardKey.gameButtonLeft1, 103: LogicalKeyboardKey.gameButtonRight1, 104: LogicalKeyboardKey.gameButtonLeft2, 105: LogicalKeyboardKey.gameButtonRight2, 106: LogicalKeyboardKey.gameButtonThumbLeft, 107: LogicalKeyboardKey.gameButtonThumbRight, 108: LogicalKeyboardKey.gameButtonStart, 109: LogicalKeyboardKey.gameButtonSelect, 110: LogicalKeyboardKey.gameButtonMode, 111: LogicalKeyboardKey.escape, 112: LogicalKeyboardKey.delete, 113: LogicalKeyboardKey.controlLeft, 114: LogicalKeyboardKey.controlRight, 115: LogicalKeyboardKey.capsLock, 116: LogicalKeyboardKey.scrollLock, 117: LogicalKeyboardKey.metaLeft, 118: LogicalKeyboardKey.metaRight, 119: LogicalKeyboardKey.fn, 120: LogicalKeyboardKey.printScreen, 121: LogicalKeyboardKey.pause, 122: LogicalKeyboardKey.home, 123: LogicalKeyboardKey.end, 124: LogicalKeyboardKey.insert, 125: LogicalKeyboardKey.browserForward, 126: LogicalKeyboardKey.mediaPlay, 127: LogicalKeyboardKey.mediaPause, 128: LogicalKeyboardKey.close, 129: LogicalKeyboardKey.eject, 130: LogicalKeyboardKey.mediaRecord, 131: LogicalKeyboardKey.f1, 132: LogicalKeyboardKey.f2, 133: LogicalKeyboardKey.f3, 134: LogicalKeyboardKey.f4, 135: LogicalKeyboardKey.f5, 136: LogicalKeyboardKey.f6, 137: LogicalKeyboardKey.f7, 138: LogicalKeyboardKey.f8, 139: LogicalKeyboardKey.f9, 140: LogicalKeyboardKey.f10, 141: LogicalKeyboardKey.f11, 142: LogicalKeyboardKey.f12, 143: LogicalKeyboardKey.numLock, 144: LogicalKeyboardKey.numpad0, 145: LogicalKeyboardKey.numpad1, 146: LogicalKeyboardKey.numpad2, 147: LogicalKeyboardKey.numpad3, 148: LogicalKeyboardKey.numpad4, 149: LogicalKeyboardKey.numpad5, 150: LogicalKeyboardKey.numpad6, 151: LogicalKeyboardKey.numpad7, 152: LogicalKeyboardKey.numpad8, 153: LogicalKeyboardKey.numpad9, 154: LogicalKeyboardKey.numpadDivide, 155: LogicalKeyboardKey.numpadMultiply, 156: LogicalKeyboardKey.numpadSubtract, 157: LogicalKeyboardKey.numpadAdd, 158: LogicalKeyboardKey.numpadDecimal, 159: LogicalKeyboardKey.numpadComma, 160: LogicalKeyboardKey.numpadEnter, 161: LogicalKeyboardKey.numpadEqual, 162: LogicalKeyboardKey.numpadParenLeft, 163: LogicalKeyboardKey.numpadParenRight, 164: LogicalKeyboardKey.audioVolumeMute, 165: LogicalKeyboardKey.info, 166: LogicalKeyboardKey.channelUp, 167: LogicalKeyboardKey.channelDown, 168: LogicalKeyboardKey.zoomIn, 169: LogicalKeyboardKey.zoomOut, 170: LogicalKeyboardKey.tv, 172: LogicalKeyboardKey.guide, 173: LogicalKeyboardKey.dvr, 174: LogicalKeyboardKey.browserFavorites, 175: LogicalKeyboardKey.closedCaptionToggle, 176: LogicalKeyboardKey.settings, 177: LogicalKeyboardKey.tvPower, 178: LogicalKeyboardKey.tvInput, 179: LogicalKeyboardKey.stbPower, 180: LogicalKeyboardKey.stbInput, 181: LogicalKeyboardKey.avrPower, 182: LogicalKeyboardKey.avrInput, 183: LogicalKeyboardKey.colorF0Red, 184: LogicalKeyboardKey.colorF1Green, 185: LogicalKeyboardKey.colorF2Yellow, 186: LogicalKeyboardKey.colorF3Blue, 187: LogicalKeyboardKey.appSwitch, 188: LogicalKeyboardKey.gameButton1, 189: LogicalKeyboardKey.gameButton2, 190: LogicalKeyboardKey.gameButton3, 191: LogicalKeyboardKey.gameButton4, 192: LogicalKeyboardKey.gameButton5, 193: LogicalKeyboardKey.gameButton6, 194: LogicalKeyboardKey.gameButton7, 195: LogicalKeyboardKey.gameButton8, 196: LogicalKeyboardKey.gameButton9, 197: LogicalKeyboardKey.gameButton10, 198: LogicalKeyboardKey.gameButton11, 199: LogicalKeyboardKey.gameButton12, 200: LogicalKeyboardKey.gameButton13, 201: LogicalKeyboardKey.gameButton14, 202: LogicalKeyboardKey.gameButton15, 203: LogicalKeyboardKey.gameButton16, 204: LogicalKeyboardKey.groupNext, 205: LogicalKeyboardKey.mannerMode, 206: LogicalKeyboardKey.tv3DMode, 207: LogicalKeyboardKey.launchContacts, 208: LogicalKeyboardKey.launchCalendar, 209: LogicalKeyboardKey.launchMusicPlayer, 211: LogicalKeyboardKey.zenkakuHankaku, 212: LogicalKeyboardKey.eisu, 213: LogicalKeyboardKey.nonConvert, 214: LogicalKeyboardKey.convert, 215: LogicalKeyboardKey.hiraganaKatakana, 216: LogicalKeyboardKey.intlYen, 217: LogicalKeyboardKey.intlRo, 218: LogicalKeyboardKey.kanjiMode, 219: LogicalKeyboardKey.launchAssistant, 220: LogicalKeyboardKey.brightnessDown, 221: LogicalKeyboardKey.brightnessUp, 222: LogicalKeyboardKey.mediaAudioTrack, 223: LogicalKeyboardKey.sleep, 224: LogicalKeyboardKey.wakeUp, 225: LogicalKeyboardKey.pairing, 226: LogicalKeyboardKey.mediaTopMenu, 229: LogicalKeyboardKey.mediaLast, 230: LogicalKeyboardKey.tvDataService, 232: LogicalKeyboardKey.tvRadioService, 233: LogicalKeyboardKey.teletext, 234: LogicalKeyboardKey.tvNumberEntry, 235: LogicalKeyboardKey.tvTerrestrialAnalog, 236: LogicalKeyboardKey.tvTerrestrialDigital, 237: LogicalKeyboardKey.tvSatellite, 238: LogicalKeyboardKey.tvSatelliteBS, 239: LogicalKeyboardKey.tvSatelliteCS, 240: LogicalKeyboardKey.tvSatelliteToggle, 241: LogicalKeyboardKey.tvNetwork, 242: LogicalKeyboardKey.tvAntennaCable, 243: LogicalKeyboardKey.tvInputHDMI1, 244: LogicalKeyboardKey.tvInputHDMI2, 245: LogicalKeyboardKey.tvInputHDMI3, 246: LogicalKeyboardKey.tvInputHDMI4, 247: LogicalKeyboardKey.tvInputComposite1, 248: LogicalKeyboardKey.tvInputComposite2, 249: LogicalKeyboardKey.tvInputComponent1, 250: LogicalKeyboardKey.tvInputComponent2, 251: LogicalKeyboardKey.tvInputVGA1, 252: LogicalKeyboardKey.tvAudioDescription, 253: LogicalKeyboardKey.tvAudioDescriptionMixUp, 254: LogicalKeyboardKey.tvAudioDescriptionMixDown, 255: LogicalKeyboardKey.zoomToggle, 256: LogicalKeyboardKey.tvContentsMenu, 258: LogicalKeyboardKey.tvTimer, 259: LogicalKeyboardKey.help, 260: LogicalKeyboardKey.navigatePrevious, 261: LogicalKeyboardKey.navigateNext, 262: LogicalKeyboardKey.navigateIn, 263: LogicalKeyboardKey.navigateOut, 272: LogicalKeyboardKey.mediaSkipForward, 273: LogicalKeyboardKey.mediaSkipBackward, 274: LogicalKeyboardKey.mediaStepForward, 275: LogicalKeyboardKey.mediaStepBackward, 277: LogicalKeyboardKey.cut, 278: LogicalKeyboardKey.copy, 279: LogicalKeyboardKey.paste, }; /// Maps Android-specific scan codes to the matching [PhysicalKeyboardKey]. const Map kAndroidToPhysicalKey = { 1: PhysicalKeyboardKey.escape, 2: PhysicalKeyboardKey.digit1, 3: PhysicalKeyboardKey.digit2, 4: PhysicalKeyboardKey.digit3, 5: PhysicalKeyboardKey.digit4, 6: PhysicalKeyboardKey.digit5, 7: PhysicalKeyboardKey.digit6, 8: PhysicalKeyboardKey.digit7, 9: PhysicalKeyboardKey.digit8, 10: PhysicalKeyboardKey.digit9, 11: PhysicalKeyboardKey.digit0, 12: PhysicalKeyboardKey.minus, 13: PhysicalKeyboardKey.equal, 14: PhysicalKeyboardKey.backspace, 15: PhysicalKeyboardKey.tab, 16: PhysicalKeyboardKey.keyQ, 17: PhysicalKeyboardKey.keyW, 18: PhysicalKeyboardKey.keyE, 19: PhysicalKeyboardKey.keyR, 20: PhysicalKeyboardKey.keyT, 21: PhysicalKeyboardKey.keyY, 22: PhysicalKeyboardKey.keyU, 23: PhysicalKeyboardKey.keyI, 24: PhysicalKeyboardKey.keyO, 25: PhysicalKeyboardKey.keyP, 26: PhysicalKeyboardKey.bracketLeft, 27: PhysicalKeyboardKey.bracketRight, 28: PhysicalKeyboardKey.enter, 29: PhysicalKeyboardKey.controlLeft, 30: PhysicalKeyboardKey.keyA, 31: PhysicalKeyboardKey.keyS, 32: PhysicalKeyboardKey.keyD, 33: PhysicalKeyboardKey.keyF, 34: PhysicalKeyboardKey.keyG, 35: PhysicalKeyboardKey.keyH, 36: PhysicalKeyboardKey.keyJ, 37: PhysicalKeyboardKey.keyK, 38: PhysicalKeyboardKey.keyL, 39: PhysicalKeyboardKey.semicolon, 40: PhysicalKeyboardKey.quote, 41: PhysicalKeyboardKey.backquote, 42: PhysicalKeyboardKey.shiftLeft, 43: PhysicalKeyboardKey.backslash, 44: PhysicalKeyboardKey.keyZ, 45: PhysicalKeyboardKey.keyX, 46: PhysicalKeyboardKey.keyC, 47: PhysicalKeyboardKey.keyV, 48: PhysicalKeyboardKey.keyB, 49: PhysicalKeyboardKey.keyN, 50: PhysicalKeyboardKey.keyM, 51: PhysicalKeyboardKey.comma, 52: PhysicalKeyboardKey.period, 53: PhysicalKeyboardKey.slash, 54: PhysicalKeyboardKey.shiftRight, 55: PhysicalKeyboardKey.numpadMultiply, 56: PhysicalKeyboardKey.altLeft, 57: PhysicalKeyboardKey.space, 58: PhysicalKeyboardKey.capsLock, 59: PhysicalKeyboardKey.f1, 60: PhysicalKeyboardKey.f2, 61: PhysicalKeyboardKey.f3, 62: PhysicalKeyboardKey.f4, 63: PhysicalKeyboardKey.f5, 64: PhysicalKeyboardKey.f6, 65: PhysicalKeyboardKey.f7, 66: PhysicalKeyboardKey.f8, 67: PhysicalKeyboardKey.f9, 68: PhysicalKeyboardKey.f10, 69: PhysicalKeyboardKey.numLock, 70: PhysicalKeyboardKey.scrollLock, 71: PhysicalKeyboardKey.numpad7, 72: PhysicalKeyboardKey.numpad8, 73: PhysicalKeyboardKey.numpad9, 74: PhysicalKeyboardKey.numpadSubtract, 75: PhysicalKeyboardKey.numpad4, 76: PhysicalKeyboardKey.numpad5, 77: PhysicalKeyboardKey.numpad6, 78: PhysicalKeyboardKey.numpadAdd, 79: PhysicalKeyboardKey.numpad1, 80: PhysicalKeyboardKey.numpad2, 81: PhysicalKeyboardKey.numpad3, 82: PhysicalKeyboardKey.numpad0, 83: PhysicalKeyboardKey.numpadDecimal, 86: PhysicalKeyboardKey.backslash, 87: PhysicalKeyboardKey.f11, 88: PhysicalKeyboardKey.f12, 89: PhysicalKeyboardKey.intlRo, 90: PhysicalKeyboardKey.lang3, 91: PhysicalKeyboardKey.lang4, 92: PhysicalKeyboardKey.convert, 94: PhysicalKeyboardKey.nonConvert, 95: PhysicalKeyboardKey.numpadComma, 96: PhysicalKeyboardKey.numpadEnter, 97: PhysicalKeyboardKey.controlRight, 98: PhysicalKeyboardKey.numpadDivide, 99: PhysicalKeyboardKey.printScreen, 100: PhysicalKeyboardKey.altRight, 102: PhysicalKeyboardKey.home, 103: PhysicalKeyboardKey.arrowUp, 104: PhysicalKeyboardKey.pageUp, 105: PhysicalKeyboardKey.arrowLeft, 106: PhysicalKeyboardKey.arrowRight, 107: PhysicalKeyboardKey.end, 108: PhysicalKeyboardKey.arrowDown, 109: PhysicalKeyboardKey.pageDown, 110: PhysicalKeyboardKey.insert, 111: PhysicalKeyboardKey.delete, 113: PhysicalKeyboardKey.audioVolumeMute, 114: PhysicalKeyboardKey.audioVolumeDown, 115: PhysicalKeyboardKey.audioVolumeUp, 116: PhysicalKeyboardKey.power, 117: PhysicalKeyboardKey.numpadEqual, 119: PhysicalKeyboardKey.pause, 121: PhysicalKeyboardKey.numpadComma, 124: PhysicalKeyboardKey.intlYen, 125: PhysicalKeyboardKey.metaLeft, 126: PhysicalKeyboardKey.metaRight, 127: PhysicalKeyboardKey.contextMenu, 128: PhysicalKeyboardKey.mediaStop, 129: PhysicalKeyboardKey.again, 130: PhysicalKeyboardKey.props, 131: PhysicalKeyboardKey.undo, 133: PhysicalKeyboardKey.copy, 134: PhysicalKeyboardKey.open, 135: PhysicalKeyboardKey.paste, 136: PhysicalKeyboardKey.find, 137: PhysicalKeyboardKey.cut, 138: PhysicalKeyboardKey.help, 139: PhysicalKeyboardKey.contextMenu, 142: PhysicalKeyboardKey.sleep, 143: PhysicalKeyboardKey.wakeUp, 152: PhysicalKeyboardKey.power, 155: PhysicalKeyboardKey.launchMail, 156: PhysicalKeyboardKey.browserFavorites, 159: PhysicalKeyboardKey.browserForward, 160: PhysicalKeyboardKey.close, 161: PhysicalKeyboardKey.eject, 162: PhysicalKeyboardKey.eject, 163: PhysicalKeyboardKey.mediaTrackNext, 164: PhysicalKeyboardKey.mediaPlayPause, 165: PhysicalKeyboardKey.mediaTrackPrevious, 166: PhysicalKeyboardKey.mediaStop, 167: PhysicalKeyboardKey.mediaRecord, 168: PhysicalKeyboardKey.mediaRewind, 174: PhysicalKeyboardKey.exit, 177: PhysicalKeyboardKey.pageUp, 178: PhysicalKeyboardKey.pageDown, 179: PhysicalKeyboardKey.numpadParenLeft, 180: PhysicalKeyboardKey.numpadParenRight, 182: PhysicalKeyboardKey.redo, 183: PhysicalKeyboardKey.f13, 184: PhysicalKeyboardKey.f14, 185: PhysicalKeyboardKey.f15, 186: PhysicalKeyboardKey.f16, 187: PhysicalKeyboardKey.f17, 188: PhysicalKeyboardKey.f18, 189: PhysicalKeyboardKey.f19, 190: PhysicalKeyboardKey.f20, 191: PhysicalKeyboardKey.f21, 192: PhysicalKeyboardKey.f22, 193: PhysicalKeyboardKey.f23, 194: PhysicalKeyboardKey.f24, 200: PhysicalKeyboardKey.mediaPlay, 201: PhysicalKeyboardKey.mediaPause, 205: PhysicalKeyboardKey.suspend, 206: PhysicalKeyboardKey.close, 207: PhysicalKeyboardKey.mediaPlay, 208: PhysicalKeyboardKey.mediaFastForward, 209: PhysicalKeyboardKey.bassBoost, 210: PhysicalKeyboardKey.print, 215: PhysicalKeyboardKey.launchMail, 217: PhysicalKeyboardKey.browserSearch, 224: PhysicalKeyboardKey.brightnessDown, 225: PhysicalKeyboardKey.brightnessUp, 256: PhysicalKeyboardKey.gameButton1, 257: PhysicalKeyboardKey.gameButton2, 258: PhysicalKeyboardKey.gameButton3, 259: PhysicalKeyboardKey.gameButton4, 260: PhysicalKeyboardKey.gameButton5, 261: PhysicalKeyboardKey.gameButton6, 262: PhysicalKeyboardKey.gameButton7, 263: PhysicalKeyboardKey.gameButton8, 264: PhysicalKeyboardKey.gameButton9, 265: PhysicalKeyboardKey.gameButton10, 266: PhysicalKeyboardKey.gameButton11, 267: PhysicalKeyboardKey.gameButton12, 268: PhysicalKeyboardKey.gameButton13, 269: PhysicalKeyboardKey.gameButton14, 270: PhysicalKeyboardKey.gameButton15, 271: PhysicalKeyboardKey.gameButton16, 288: PhysicalKeyboardKey.gameButton1, 289: PhysicalKeyboardKey.gameButton2, 290: PhysicalKeyboardKey.gameButton3, 291: PhysicalKeyboardKey.gameButton4, 292: PhysicalKeyboardKey.gameButton5, 293: PhysicalKeyboardKey.gameButton6, 294: PhysicalKeyboardKey.gameButton7, 295: PhysicalKeyboardKey.gameButton8, 296: PhysicalKeyboardKey.gameButton9, 297: PhysicalKeyboardKey.gameButton10, 298: PhysicalKeyboardKey.gameButton11, 299: PhysicalKeyboardKey.gameButton12, 300: PhysicalKeyboardKey.gameButton13, 301: PhysicalKeyboardKey.gameButton14, 302: PhysicalKeyboardKey.gameButton15, 303: PhysicalKeyboardKey.gameButton16, 304: PhysicalKeyboardKey.gameButtonA, 305: PhysicalKeyboardKey.gameButtonB, 306: PhysicalKeyboardKey.gameButtonC, 307: PhysicalKeyboardKey.gameButtonX, 308: PhysicalKeyboardKey.gameButtonY, 309: PhysicalKeyboardKey.gameButtonZ, 310: PhysicalKeyboardKey.gameButtonLeft1, 311: PhysicalKeyboardKey.gameButtonRight1, 312: PhysicalKeyboardKey.gameButtonLeft2, 313: PhysicalKeyboardKey.gameButtonRight2, 314: PhysicalKeyboardKey.gameButtonSelect, 315: PhysicalKeyboardKey.gameButtonStart, 316: PhysicalKeyboardKey.gameButtonMode, 317: PhysicalKeyboardKey.gameButtonThumbLeft, 318: PhysicalKeyboardKey.gameButtonThumbRight, 353: PhysicalKeyboardKey.select, 358: PhysicalKeyboardKey.info, 370: PhysicalKeyboardKey.closedCaptionToggle, 397: PhysicalKeyboardKey.launchCalendar, 402: PhysicalKeyboardKey.channelUp, 403: PhysicalKeyboardKey.channelDown, 405: PhysicalKeyboardKey.mediaLast, 411: PhysicalKeyboardKey.pause, 429: PhysicalKeyboardKey.launchContacts, 464: PhysicalKeyboardKey.fn, 583: PhysicalKeyboardKey.launchAssistant, }; /// A map of Android key codes which have printable representations, but appear /// on the number pad. Used to provide different key objects for keys like /// KEY_EQUALS and NUMPAD_EQUALS. const Map kAndroidNumPadMap = { 144: LogicalKeyboardKey.numpad0, 145: LogicalKeyboardKey.numpad1, 146: LogicalKeyboardKey.numpad2, 147: LogicalKeyboardKey.numpad3, 148: LogicalKeyboardKey.numpad4, 149: LogicalKeyboardKey.numpad5, 150: LogicalKeyboardKey.numpad6, 151: LogicalKeyboardKey.numpad7, 152: LogicalKeyboardKey.numpad8, 153: LogicalKeyboardKey.numpad9, 154: LogicalKeyboardKey.numpadDivide, 155: LogicalKeyboardKey.numpadMultiply, 156: LogicalKeyboardKey.numpadSubtract, 157: LogicalKeyboardKey.numpadAdd, 158: LogicalKeyboardKey.numpadDecimal, 159: LogicalKeyboardKey.numpadComma, 161: LogicalKeyboardKey.numpadEqual, 162: LogicalKeyboardKey.numpadParenLeft, 163: LogicalKeyboardKey.numpadParenRight, }; /// Maps Fuchsia-specific IDs to the matching [LogicalKeyboardKey]. const Map kFuchsiaToLogicalKey = { 0x1200000010: LogicalKeyboardKey.hyper, 0x1200000011: LogicalKeyboardKey.superKey, 0x1200000012: LogicalKeyboardKey.fn, 0x1200000013: LogicalKeyboardKey.fnLock, 0x1200000014: LogicalKeyboardKey.suspend, 0x1200000015: LogicalKeyboardKey.resume, 0x1200010082: LogicalKeyboardKey.sleep, 0x1200010083: LogicalKeyboardKey.wakeUp, 0x120005ff01: LogicalKeyboardKey.gameButton1, 0x120005ff02: LogicalKeyboardKey.gameButton2, 0x120005ff03: LogicalKeyboardKey.gameButton3, 0x120005ff04: LogicalKeyboardKey.gameButton4, 0x120005ff05: LogicalKeyboardKey.gameButton5, 0x120005ff06: LogicalKeyboardKey.gameButton6, 0x120005ff07: LogicalKeyboardKey.gameButton7, 0x120005ff08: LogicalKeyboardKey.gameButton8, 0x120005ff09: LogicalKeyboardKey.gameButton9, 0x120005ff0a: LogicalKeyboardKey.gameButton10, 0x120005ff0b: LogicalKeyboardKey.gameButton11, 0x120005ff0c: LogicalKeyboardKey.gameButton12, 0x120005ff0d: LogicalKeyboardKey.gameButton13, 0x120005ff0e: LogicalKeyboardKey.gameButton14, 0x120005ff0f: LogicalKeyboardKey.gameButton15, 0x120005ff10: LogicalKeyboardKey.gameButton16, 0x120005ff11: LogicalKeyboardKey.gameButtonA, 0x120005ff12: LogicalKeyboardKey.gameButtonB, 0x120005ff13: LogicalKeyboardKey.gameButtonC, 0x120005ff14: LogicalKeyboardKey.gameButtonLeft1, 0x120005ff15: LogicalKeyboardKey.gameButtonLeft2, 0x120005ff16: LogicalKeyboardKey.gameButtonMode, 0x120005ff17: LogicalKeyboardKey.gameButtonRight1, 0x120005ff18: LogicalKeyboardKey.gameButtonRight2, 0x120005ff19: LogicalKeyboardKey.gameButtonSelect, 0x120005ff1a: LogicalKeyboardKey.gameButtonStart, 0x120005ff1b: LogicalKeyboardKey.gameButtonThumbLeft, 0x120005ff1c: LogicalKeyboardKey.gameButtonThumbRight, 0x120005ff1d: LogicalKeyboardKey.gameButtonX, 0x120005ff1e: LogicalKeyboardKey.gameButtonY, 0x120005ff1f: LogicalKeyboardKey.gameButtonZ, 0x1200070004: LogicalKeyboardKey.keyA, 0x1200070005: LogicalKeyboardKey.keyB, 0x1200070006: LogicalKeyboardKey.keyC, 0x1200070007: LogicalKeyboardKey.keyD, 0x1200070008: LogicalKeyboardKey.keyE, 0x1200070009: LogicalKeyboardKey.keyF, 0x120007000a: LogicalKeyboardKey.keyG, 0x120007000b: LogicalKeyboardKey.keyH, 0x120007000c: LogicalKeyboardKey.keyI, 0x120007000d: LogicalKeyboardKey.keyJ, 0x120007000e: LogicalKeyboardKey.keyK, 0x120007000f: LogicalKeyboardKey.keyL, 0x1200070010: LogicalKeyboardKey.keyM, 0x1200070011: LogicalKeyboardKey.keyN, 0x1200070012: LogicalKeyboardKey.keyO, 0x1200070013: LogicalKeyboardKey.keyP, 0x1200070014: LogicalKeyboardKey.keyQ, 0x1200070015: LogicalKeyboardKey.keyR, 0x1200070016: LogicalKeyboardKey.keyS, 0x1200070017: LogicalKeyboardKey.keyT, 0x1200070018: LogicalKeyboardKey.keyU, 0x1200070019: LogicalKeyboardKey.keyV, 0x120007001a: LogicalKeyboardKey.keyW, 0x120007001b: LogicalKeyboardKey.keyX, 0x120007001c: LogicalKeyboardKey.keyY, 0x120007001d: LogicalKeyboardKey.keyZ, 0x120007001e: LogicalKeyboardKey.digit1, 0x120007001f: LogicalKeyboardKey.digit2, 0x1200070020: LogicalKeyboardKey.digit3, 0x1200070021: LogicalKeyboardKey.digit4, 0x1200070022: LogicalKeyboardKey.digit5, 0x1200070023: LogicalKeyboardKey.digit6, 0x1200070024: LogicalKeyboardKey.digit7, 0x1200070025: LogicalKeyboardKey.digit8, 0x1200070026: LogicalKeyboardKey.digit9, 0x1200070027: LogicalKeyboardKey.digit0, 0x1200070028: LogicalKeyboardKey.enter, 0x1200070029: LogicalKeyboardKey.escape, 0x120007002a: LogicalKeyboardKey.backspace, 0x120007002b: LogicalKeyboardKey.tab, 0x120007002c: LogicalKeyboardKey.space, 0x120007002d: LogicalKeyboardKey.minus, 0x120007002e: LogicalKeyboardKey.equal, 0x120007002f: LogicalKeyboardKey.bracketLeft, 0x1200070030: LogicalKeyboardKey.bracketRight, 0x1200070031: LogicalKeyboardKey.backslash, 0x1200070033: LogicalKeyboardKey.semicolon, 0x1200070034: LogicalKeyboardKey.quote, 0x1200070035: LogicalKeyboardKey.backquote, 0x1200070036: LogicalKeyboardKey.comma, 0x1200070037: LogicalKeyboardKey.period, 0x1200070038: LogicalKeyboardKey.slash, 0x1200070039: LogicalKeyboardKey.capsLock, 0x120007003a: LogicalKeyboardKey.f1, 0x120007003b: LogicalKeyboardKey.f2, 0x120007003c: LogicalKeyboardKey.f3, 0x120007003d: LogicalKeyboardKey.f4, 0x120007003e: LogicalKeyboardKey.f5, 0x120007003f: LogicalKeyboardKey.f6, 0x1200070040: LogicalKeyboardKey.f7, 0x1200070041: LogicalKeyboardKey.f8, 0x1200070042: LogicalKeyboardKey.f9, 0x1200070043: LogicalKeyboardKey.f10, 0x1200070044: LogicalKeyboardKey.f11, 0x1200070045: LogicalKeyboardKey.f12, 0x1200070046: LogicalKeyboardKey.printScreen, 0x1200070047: LogicalKeyboardKey.scrollLock, 0x1200070048: LogicalKeyboardKey.pause, 0x1200070049: LogicalKeyboardKey.insert, 0x120007004a: LogicalKeyboardKey.home, 0x120007004b: LogicalKeyboardKey.pageUp, 0x120007004c: LogicalKeyboardKey.delete, 0x120007004d: LogicalKeyboardKey.end, 0x120007004e: LogicalKeyboardKey.pageDown, 0x120007004f: LogicalKeyboardKey.arrowRight, 0x1200070050: LogicalKeyboardKey.arrowLeft, 0x1200070051: LogicalKeyboardKey.arrowDown, 0x1200070052: LogicalKeyboardKey.arrowUp, 0x1200070053: LogicalKeyboardKey.numLock, 0x1200070054: LogicalKeyboardKey.numpadDivide, 0x1200070055: LogicalKeyboardKey.numpadMultiply, 0x1200070056: LogicalKeyboardKey.numpadSubtract, 0x1200070057: LogicalKeyboardKey.numpadAdd, 0x1200070058: LogicalKeyboardKey.numpadEnter, 0x1200070059: LogicalKeyboardKey.numpad1, 0x120007005a: LogicalKeyboardKey.numpad2, 0x120007005b: LogicalKeyboardKey.numpad3, 0x120007005c: LogicalKeyboardKey.numpad4, 0x120007005d: LogicalKeyboardKey.numpad5, 0x120007005e: LogicalKeyboardKey.numpad6, 0x120007005f: LogicalKeyboardKey.numpad7, 0x1200070060: LogicalKeyboardKey.numpad8, 0x1200070061: LogicalKeyboardKey.numpad9, 0x1200070062: LogicalKeyboardKey.numpad0, 0x1200070063: LogicalKeyboardKey.numpadDecimal, 0x1200070064: LogicalKeyboardKey.intlBackslash, 0x1200070065: LogicalKeyboardKey.contextMenu, 0x1200070066: LogicalKeyboardKey.power, 0x1200070067: LogicalKeyboardKey.numpadEqual, 0x1200070068: LogicalKeyboardKey.f13, 0x1200070069: LogicalKeyboardKey.f14, 0x120007006a: LogicalKeyboardKey.f15, 0x120007006b: LogicalKeyboardKey.f16, 0x120007006c: LogicalKeyboardKey.f17, 0x120007006d: LogicalKeyboardKey.f18, 0x120007006e: LogicalKeyboardKey.f19, 0x120007006f: LogicalKeyboardKey.f20, 0x1200070070: LogicalKeyboardKey.f21, 0x1200070071: LogicalKeyboardKey.f22, 0x1200070072: LogicalKeyboardKey.f23, 0x1200070073: LogicalKeyboardKey.f24, 0x1200070074: LogicalKeyboardKey.open, 0x1200070075: LogicalKeyboardKey.help, 0x1200070077: LogicalKeyboardKey.select, 0x1200070079: LogicalKeyboardKey.again, 0x120007007a: LogicalKeyboardKey.undo, 0x120007007b: LogicalKeyboardKey.cut, 0x120007007c: LogicalKeyboardKey.copy, 0x120007007d: LogicalKeyboardKey.paste, 0x120007007e: LogicalKeyboardKey.find, 0x120007007f: LogicalKeyboardKey.audioVolumeMute, 0x1200070080: LogicalKeyboardKey.audioVolumeUp, 0x1200070081: LogicalKeyboardKey.audioVolumeDown, 0x1200070085: LogicalKeyboardKey.numpadComma, 0x1200070087: LogicalKeyboardKey.intlRo, 0x1200070088: LogicalKeyboardKey.kanaMode, 0x1200070089: LogicalKeyboardKey.intlYen, 0x120007008a: LogicalKeyboardKey.convert, 0x120007008b: LogicalKeyboardKey.nonConvert, 0x1200070090: LogicalKeyboardKey.lang1, 0x1200070091: LogicalKeyboardKey.lang2, 0x1200070092: LogicalKeyboardKey.lang3, 0x1200070093: LogicalKeyboardKey.lang4, 0x1200070094: LogicalKeyboardKey.lang5, 0x120007009b: LogicalKeyboardKey.abort, 0x12000700a3: LogicalKeyboardKey.props, 0x12000700b6: LogicalKeyboardKey.numpadParenLeft, 0x12000700b7: LogicalKeyboardKey.numpadParenRight, 0x12000700e0: LogicalKeyboardKey.controlLeft, 0x12000700e1: LogicalKeyboardKey.shiftLeft, 0x12000700e2: LogicalKeyboardKey.altLeft, 0x12000700e3: LogicalKeyboardKey.metaLeft, 0x12000700e4: LogicalKeyboardKey.controlRight, 0x12000700e5: LogicalKeyboardKey.shiftRight, 0x12000700e6: LogicalKeyboardKey.altRight, 0x12000700e7: LogicalKeyboardKey.metaRight, 0x12000c0060: LogicalKeyboardKey.info, 0x12000c0061: LogicalKeyboardKey.closedCaptionToggle, 0x12000c006f: LogicalKeyboardKey.brightnessUp, 0x12000c0070: LogicalKeyboardKey.brightnessDown, 0x12000c0083: LogicalKeyboardKey.mediaLast, 0x12000c008c: LogicalKeyboardKey.launchPhone, 0x12000c0094: LogicalKeyboardKey.exit, 0x12000c009c: LogicalKeyboardKey.channelUp, 0x12000c009d: LogicalKeyboardKey.channelDown, 0x12000c00b0: LogicalKeyboardKey.mediaPlay, 0x12000c00b1: LogicalKeyboardKey.mediaPause, 0x12000c00b2: LogicalKeyboardKey.mediaRecord, 0x12000c00b3: LogicalKeyboardKey.mediaFastForward, 0x12000c00b4: LogicalKeyboardKey.mediaRewind, 0x12000c00b5: LogicalKeyboardKey.mediaTrackNext, 0x12000c00b6: LogicalKeyboardKey.mediaTrackPrevious, 0x12000c00b7: LogicalKeyboardKey.mediaStop, 0x12000c00b8: LogicalKeyboardKey.eject, 0x12000c00cd: LogicalKeyboardKey.mediaPlayPause, 0x12000c00cf: LogicalKeyboardKey.speechInputToggle, 0x12000c0184: LogicalKeyboardKey.launchWordProcessor, 0x12000c0186: LogicalKeyboardKey.launchSpreadsheet, 0x12000c018a: LogicalKeyboardKey.launchMail, 0x12000c018d: LogicalKeyboardKey.launchContacts, 0x12000c018e: LogicalKeyboardKey.launchCalendar, 0x12000c019c: LogicalKeyboardKey.logOff, 0x12000c019f: LogicalKeyboardKey.launchControlPanel, 0x12000c01ab: LogicalKeyboardKey.spellCheck, 0x12000c01b1: LogicalKeyboardKey.launchScreenSaver, 0x12000c01cb: LogicalKeyboardKey.launchAssistant, 0x12000c0201: LogicalKeyboardKey.newKey, 0x12000c0203: LogicalKeyboardKey.close, 0x12000c0207: LogicalKeyboardKey.save, 0x12000c0208: LogicalKeyboardKey.print, 0x12000c0221: LogicalKeyboardKey.browserSearch, 0x12000c0223: LogicalKeyboardKey.browserHome, 0x12000c0224: LogicalKeyboardKey.browserBack, 0x12000c0225: LogicalKeyboardKey.browserForward, 0x12000c0226: LogicalKeyboardKey.browserStop, 0x12000c0227: LogicalKeyboardKey.browserRefresh, 0x12000c022a: LogicalKeyboardKey.browserFavorites, 0x12000c022d: LogicalKeyboardKey.zoomIn, 0x12000c022e: LogicalKeyboardKey.zoomOut, 0x12000c0232: LogicalKeyboardKey.zoomToggle, 0x12000c0279: LogicalKeyboardKey.redo, 0x12000c0289: LogicalKeyboardKey.mailReply, 0x12000c028b: LogicalKeyboardKey.mailForward, 0x12000c028c: LogicalKeyboardKey.mailSend, }; /// Maps Fuchsia-specific USB HID Usage IDs to the matching /// [PhysicalKeyboardKey]. const Map kFuchsiaToPhysicalKey = { 0x00000010: PhysicalKeyboardKey.hyper, 0x00000011: PhysicalKeyboardKey.superKey, 0x00000012: PhysicalKeyboardKey.fn, 0x00000013: PhysicalKeyboardKey.fnLock, 0x00000014: PhysicalKeyboardKey.suspend, 0x00000015: PhysicalKeyboardKey.resume, 0x00000016: PhysicalKeyboardKey.turbo, 0x00000017: PhysicalKeyboardKey.privacyScreenToggle, 0x00000018: PhysicalKeyboardKey.microphoneMuteToggle, 0x00010082: PhysicalKeyboardKey.sleep, 0x00010083: PhysicalKeyboardKey.wakeUp, 0x000100b5: PhysicalKeyboardKey.displayToggleIntExt, 0x0005ff01: PhysicalKeyboardKey.gameButton1, 0x0005ff02: PhysicalKeyboardKey.gameButton2, 0x0005ff03: PhysicalKeyboardKey.gameButton3, 0x0005ff04: PhysicalKeyboardKey.gameButton4, 0x0005ff05: PhysicalKeyboardKey.gameButton5, 0x0005ff06: PhysicalKeyboardKey.gameButton6, 0x0005ff07: PhysicalKeyboardKey.gameButton7, 0x0005ff08: PhysicalKeyboardKey.gameButton8, 0x0005ff09: PhysicalKeyboardKey.gameButton9, 0x0005ff0a: PhysicalKeyboardKey.gameButton10, 0x0005ff0b: PhysicalKeyboardKey.gameButton11, 0x0005ff0c: PhysicalKeyboardKey.gameButton12, 0x0005ff0d: PhysicalKeyboardKey.gameButton13, 0x0005ff0e: PhysicalKeyboardKey.gameButton14, 0x0005ff0f: PhysicalKeyboardKey.gameButton15, 0x0005ff10: PhysicalKeyboardKey.gameButton16, 0x0005ff11: PhysicalKeyboardKey.gameButtonA, 0x0005ff12: PhysicalKeyboardKey.gameButtonB, 0x0005ff13: PhysicalKeyboardKey.gameButtonC, 0x0005ff14: PhysicalKeyboardKey.gameButtonLeft1, 0x0005ff15: PhysicalKeyboardKey.gameButtonLeft2, 0x0005ff16: PhysicalKeyboardKey.gameButtonMode, 0x0005ff17: PhysicalKeyboardKey.gameButtonRight1, 0x0005ff18: PhysicalKeyboardKey.gameButtonRight2, 0x0005ff19: PhysicalKeyboardKey.gameButtonSelect, 0x0005ff1a: PhysicalKeyboardKey.gameButtonStart, 0x0005ff1b: PhysicalKeyboardKey.gameButtonThumbLeft, 0x0005ff1c: PhysicalKeyboardKey.gameButtonThumbRight, 0x0005ff1d: PhysicalKeyboardKey.gameButtonX, 0x0005ff1e: PhysicalKeyboardKey.gameButtonY, 0x0005ff1f: PhysicalKeyboardKey.gameButtonZ, 0x00070000: PhysicalKeyboardKey.usbReserved, 0x00070001: PhysicalKeyboardKey.usbErrorRollOver, 0x00070002: PhysicalKeyboardKey.usbPostFail, 0x00070003: PhysicalKeyboardKey.usbErrorUndefined, 0x00070004: PhysicalKeyboardKey.keyA, 0x00070005: PhysicalKeyboardKey.keyB, 0x00070006: PhysicalKeyboardKey.keyC, 0x00070007: PhysicalKeyboardKey.keyD, 0x00070008: PhysicalKeyboardKey.keyE, 0x00070009: PhysicalKeyboardKey.keyF, 0x0007000a: PhysicalKeyboardKey.keyG, 0x0007000b: PhysicalKeyboardKey.keyH, 0x0007000c: PhysicalKeyboardKey.keyI, 0x0007000d: PhysicalKeyboardKey.keyJ, 0x0007000e: PhysicalKeyboardKey.keyK, 0x0007000f: PhysicalKeyboardKey.keyL, 0x00070010: PhysicalKeyboardKey.keyM, 0x00070011: PhysicalKeyboardKey.keyN, 0x00070012: PhysicalKeyboardKey.keyO, 0x00070013: PhysicalKeyboardKey.keyP, 0x00070014: PhysicalKeyboardKey.keyQ, 0x00070015: PhysicalKeyboardKey.keyR, 0x00070016: PhysicalKeyboardKey.keyS, 0x00070017: PhysicalKeyboardKey.keyT, 0x00070018: PhysicalKeyboardKey.keyU, 0x00070019: PhysicalKeyboardKey.keyV, 0x0007001a: PhysicalKeyboardKey.keyW, 0x0007001b: PhysicalKeyboardKey.keyX, 0x0007001c: PhysicalKeyboardKey.keyY, 0x0007001d: PhysicalKeyboardKey.keyZ, 0x0007001e: PhysicalKeyboardKey.digit1, 0x0007001f: PhysicalKeyboardKey.digit2, 0x00070020: PhysicalKeyboardKey.digit3, 0x00070021: PhysicalKeyboardKey.digit4, 0x00070022: PhysicalKeyboardKey.digit5, 0x00070023: PhysicalKeyboardKey.digit6, 0x00070024: PhysicalKeyboardKey.digit7, 0x00070025: PhysicalKeyboardKey.digit8, 0x00070026: PhysicalKeyboardKey.digit9, 0x00070027: PhysicalKeyboardKey.digit0, 0x00070028: PhysicalKeyboardKey.enter, 0x00070029: PhysicalKeyboardKey.escape, 0x0007002a: PhysicalKeyboardKey.backspace, 0x0007002b: PhysicalKeyboardKey.tab, 0x0007002c: PhysicalKeyboardKey.space, 0x0007002d: PhysicalKeyboardKey.minus, 0x0007002e: PhysicalKeyboardKey.equal, 0x0007002f: PhysicalKeyboardKey.bracketLeft, 0x00070030: PhysicalKeyboardKey.bracketRight, 0x00070031: PhysicalKeyboardKey.backslash, 0x00070033: PhysicalKeyboardKey.semicolon, 0x00070034: PhysicalKeyboardKey.quote, 0x00070035: PhysicalKeyboardKey.backquote, 0x00070036: PhysicalKeyboardKey.comma, 0x00070037: PhysicalKeyboardKey.period, 0x00070038: PhysicalKeyboardKey.slash, 0x00070039: PhysicalKeyboardKey.capsLock, 0x0007003a: PhysicalKeyboardKey.f1, 0x0007003b: PhysicalKeyboardKey.f2, 0x0007003c: PhysicalKeyboardKey.f3, 0x0007003d: PhysicalKeyboardKey.f4, 0x0007003e: PhysicalKeyboardKey.f5, 0x0007003f: PhysicalKeyboardKey.f6, 0x00070040: PhysicalKeyboardKey.f7, 0x00070041: PhysicalKeyboardKey.f8, 0x00070042: PhysicalKeyboardKey.f9, 0x00070043: PhysicalKeyboardKey.f10, 0x00070044: PhysicalKeyboardKey.f11, 0x00070045: PhysicalKeyboardKey.f12, 0x00070046: PhysicalKeyboardKey.printScreen, 0x00070047: PhysicalKeyboardKey.scrollLock, 0x00070048: PhysicalKeyboardKey.pause, 0x00070049: PhysicalKeyboardKey.insert, 0x0007004a: PhysicalKeyboardKey.home, 0x0007004b: PhysicalKeyboardKey.pageUp, 0x0007004c: PhysicalKeyboardKey.delete, 0x0007004d: PhysicalKeyboardKey.end, 0x0007004e: PhysicalKeyboardKey.pageDown, 0x0007004f: PhysicalKeyboardKey.arrowRight, 0x00070050: PhysicalKeyboardKey.arrowLeft, 0x00070051: PhysicalKeyboardKey.arrowDown, 0x00070052: PhysicalKeyboardKey.arrowUp, 0x00070053: PhysicalKeyboardKey.numLock, 0x00070054: PhysicalKeyboardKey.numpadDivide, 0x00070055: PhysicalKeyboardKey.numpadMultiply, 0x00070056: PhysicalKeyboardKey.numpadSubtract, 0x00070057: PhysicalKeyboardKey.numpadAdd, 0x00070058: PhysicalKeyboardKey.numpadEnter, 0x00070059: PhysicalKeyboardKey.numpad1, 0x0007005a: PhysicalKeyboardKey.numpad2, 0x0007005b: PhysicalKeyboardKey.numpad3, 0x0007005c: PhysicalKeyboardKey.numpad4, 0x0007005d: PhysicalKeyboardKey.numpad5, 0x0007005e: PhysicalKeyboardKey.numpad6, 0x0007005f: PhysicalKeyboardKey.numpad7, 0x00070060: PhysicalKeyboardKey.numpad8, 0x00070061: PhysicalKeyboardKey.numpad9, 0x00070062: PhysicalKeyboardKey.numpad0, 0x00070063: PhysicalKeyboardKey.numpadDecimal, 0x00070064: PhysicalKeyboardKey.intlBackslash, 0x00070065: PhysicalKeyboardKey.contextMenu, 0x00070066: PhysicalKeyboardKey.power, 0x00070067: PhysicalKeyboardKey.numpadEqual, 0x00070068: PhysicalKeyboardKey.f13, 0x00070069: PhysicalKeyboardKey.f14, 0x0007006a: PhysicalKeyboardKey.f15, 0x0007006b: PhysicalKeyboardKey.f16, 0x0007006c: PhysicalKeyboardKey.f17, 0x0007006d: PhysicalKeyboardKey.f18, 0x0007006e: PhysicalKeyboardKey.f19, 0x0007006f: PhysicalKeyboardKey.f20, 0x00070070: PhysicalKeyboardKey.f21, 0x00070071: PhysicalKeyboardKey.f22, 0x00070072: PhysicalKeyboardKey.f23, 0x00070073: PhysicalKeyboardKey.f24, 0x00070074: PhysicalKeyboardKey.open, 0x00070075: PhysicalKeyboardKey.help, 0x00070077: PhysicalKeyboardKey.select, 0x00070079: PhysicalKeyboardKey.again, 0x0007007a: PhysicalKeyboardKey.undo, 0x0007007b: PhysicalKeyboardKey.cut, 0x0007007c: PhysicalKeyboardKey.copy, 0x0007007d: PhysicalKeyboardKey.paste, 0x0007007e: PhysicalKeyboardKey.find, 0x0007007f: PhysicalKeyboardKey.audioVolumeMute, 0x00070080: PhysicalKeyboardKey.audioVolumeUp, 0x00070081: PhysicalKeyboardKey.audioVolumeDown, 0x00070085: PhysicalKeyboardKey.numpadComma, 0x00070087: PhysicalKeyboardKey.intlRo, 0x00070088: PhysicalKeyboardKey.kanaMode, 0x00070089: PhysicalKeyboardKey.intlYen, 0x0007008a: PhysicalKeyboardKey.convert, 0x0007008b: PhysicalKeyboardKey.nonConvert, 0x00070090: PhysicalKeyboardKey.lang1, 0x00070091: PhysicalKeyboardKey.lang2, 0x00070092: PhysicalKeyboardKey.lang3, 0x00070093: PhysicalKeyboardKey.lang4, 0x00070094: PhysicalKeyboardKey.lang5, 0x0007009b: PhysicalKeyboardKey.abort, 0x000700a3: PhysicalKeyboardKey.props, 0x000700b6: PhysicalKeyboardKey.numpadParenLeft, 0x000700b7: PhysicalKeyboardKey.numpadParenRight, 0x000700bb: PhysicalKeyboardKey.numpadBackspace, 0x000700d0: PhysicalKeyboardKey.numpadMemoryStore, 0x000700d1: PhysicalKeyboardKey.numpadMemoryRecall, 0x000700d2: PhysicalKeyboardKey.numpadMemoryClear, 0x000700d3: PhysicalKeyboardKey.numpadMemoryAdd, 0x000700d4: PhysicalKeyboardKey.numpadMemorySubtract, 0x000700d7: PhysicalKeyboardKey.numpadSignChange, 0x000700d8: PhysicalKeyboardKey.numpadClear, 0x000700d9: PhysicalKeyboardKey.numpadClearEntry, 0x000700e0: PhysicalKeyboardKey.controlLeft, 0x000700e1: PhysicalKeyboardKey.shiftLeft, 0x000700e2: PhysicalKeyboardKey.altLeft, 0x000700e3: PhysicalKeyboardKey.metaLeft, 0x000700e4: PhysicalKeyboardKey.controlRight, 0x000700e5: PhysicalKeyboardKey.shiftRight, 0x000700e6: PhysicalKeyboardKey.altRight, 0x000700e7: PhysicalKeyboardKey.metaRight, 0x000c0060: PhysicalKeyboardKey.info, 0x000c0061: PhysicalKeyboardKey.closedCaptionToggle, 0x000c006f: PhysicalKeyboardKey.brightnessUp, 0x000c0070: PhysicalKeyboardKey.brightnessDown, 0x000c0072: PhysicalKeyboardKey.brightnessToggle, 0x000c0073: PhysicalKeyboardKey.brightnessMinimum, 0x000c0074: PhysicalKeyboardKey.brightnessMaximum, 0x000c0075: PhysicalKeyboardKey.brightnessAuto, 0x000c0079: PhysicalKeyboardKey.kbdIllumUp, 0x000c007a: PhysicalKeyboardKey.kbdIllumDown, 0x000c0083: PhysicalKeyboardKey.mediaLast, 0x000c008c: PhysicalKeyboardKey.launchPhone, 0x000c008d: PhysicalKeyboardKey.programGuide, 0x000c0094: PhysicalKeyboardKey.exit, 0x000c009c: PhysicalKeyboardKey.channelUp, 0x000c009d: PhysicalKeyboardKey.channelDown, 0x000c00b0: PhysicalKeyboardKey.mediaPlay, 0x000c00b1: PhysicalKeyboardKey.mediaPause, 0x000c00b2: PhysicalKeyboardKey.mediaRecord, 0x000c00b3: PhysicalKeyboardKey.mediaFastForward, 0x000c00b4: PhysicalKeyboardKey.mediaRewind, 0x000c00b5: PhysicalKeyboardKey.mediaTrackNext, 0x000c00b6: PhysicalKeyboardKey.mediaTrackPrevious, 0x000c00b7: PhysicalKeyboardKey.mediaStop, 0x000c00b8: PhysicalKeyboardKey.eject, 0x000c00cd: PhysicalKeyboardKey.mediaPlayPause, 0x000c00cf: PhysicalKeyboardKey.speechInputToggle, 0x000c00e5: PhysicalKeyboardKey.bassBoost, 0x000c0183: PhysicalKeyboardKey.mediaSelect, 0x000c0184: PhysicalKeyboardKey.launchWordProcessor, 0x000c0186: PhysicalKeyboardKey.launchSpreadsheet, 0x000c018a: PhysicalKeyboardKey.launchMail, 0x000c018d: PhysicalKeyboardKey.launchContacts, 0x000c018e: PhysicalKeyboardKey.launchCalendar, 0x000c0192: PhysicalKeyboardKey.launchApp2, 0x000c0194: PhysicalKeyboardKey.launchApp1, 0x000c0196: PhysicalKeyboardKey.launchInternetBrowser, 0x000c019c: PhysicalKeyboardKey.logOff, 0x000c019e: PhysicalKeyboardKey.lockScreen, 0x000c019f: PhysicalKeyboardKey.launchControlPanel, 0x000c01a2: PhysicalKeyboardKey.selectTask, 0x000c01a7: PhysicalKeyboardKey.launchDocuments, 0x000c01ab: PhysicalKeyboardKey.spellCheck, 0x000c01ae: PhysicalKeyboardKey.launchKeyboardLayout, 0x000c01b1: PhysicalKeyboardKey.launchScreenSaver, 0x000c01b7: PhysicalKeyboardKey.launchAudioBrowser, 0x000c01cb: PhysicalKeyboardKey.launchAssistant, 0x000c0201: PhysicalKeyboardKey.newKey, 0x000c0203: PhysicalKeyboardKey.close, 0x000c0207: PhysicalKeyboardKey.save, 0x000c0208: PhysicalKeyboardKey.print, 0x000c0221: PhysicalKeyboardKey.browserSearch, 0x000c0223: PhysicalKeyboardKey.browserHome, 0x000c0224: PhysicalKeyboardKey.browserBack, 0x000c0225: PhysicalKeyboardKey.browserForward, 0x000c0226: PhysicalKeyboardKey.browserStop, 0x000c0227: PhysicalKeyboardKey.browserRefresh, 0x000c022a: PhysicalKeyboardKey.browserFavorites, 0x000c022d: PhysicalKeyboardKey.zoomIn, 0x000c022e: PhysicalKeyboardKey.zoomOut, 0x000c0232: PhysicalKeyboardKey.zoomToggle, 0x000c0279: PhysicalKeyboardKey.redo, 0x000c0289: PhysicalKeyboardKey.mailReply, 0x000c028b: PhysicalKeyboardKey.mailForward, 0x000c028c: PhysicalKeyboardKey.mailSend, 0x000c029d: PhysicalKeyboardKey.keyboardLayoutSelect, 0x000c029f: PhysicalKeyboardKey.showAllWindows, }; /// Maps macOS-specific key code values representing [PhysicalKeyboardKey]. /// /// MacOS doesn't provide a scan code, but a virtual keycode to represent a physical key. const Map kMacOsToPhysicalKey = { 0x00000000: PhysicalKeyboardKey.keyA, 0x00000001: PhysicalKeyboardKey.keyS, 0x00000002: PhysicalKeyboardKey.keyD, 0x00000003: PhysicalKeyboardKey.keyF, 0x00000004: PhysicalKeyboardKey.keyH, 0x00000005: PhysicalKeyboardKey.keyG, 0x00000006: PhysicalKeyboardKey.keyZ, 0x00000007: PhysicalKeyboardKey.keyX, 0x00000008: PhysicalKeyboardKey.keyC, 0x00000009: PhysicalKeyboardKey.keyV, 0x0000000a: PhysicalKeyboardKey.intlBackslash, 0x0000000b: PhysicalKeyboardKey.keyB, 0x0000000c: PhysicalKeyboardKey.keyQ, 0x0000000d: PhysicalKeyboardKey.keyW, 0x0000000e: PhysicalKeyboardKey.keyE, 0x0000000f: PhysicalKeyboardKey.keyR, 0x00000010: PhysicalKeyboardKey.keyY, 0x00000011: PhysicalKeyboardKey.keyT, 0x00000012: PhysicalKeyboardKey.digit1, 0x00000013: PhysicalKeyboardKey.digit2, 0x00000014: PhysicalKeyboardKey.digit3, 0x00000015: PhysicalKeyboardKey.digit4, 0x00000016: PhysicalKeyboardKey.digit6, 0x00000017: PhysicalKeyboardKey.digit5, 0x00000018: PhysicalKeyboardKey.equal, 0x00000019: PhysicalKeyboardKey.digit9, 0x0000001a: PhysicalKeyboardKey.digit7, 0x0000001b: PhysicalKeyboardKey.minus, 0x0000001c: PhysicalKeyboardKey.digit8, 0x0000001d: PhysicalKeyboardKey.digit0, 0x0000001e: PhysicalKeyboardKey.bracketRight, 0x0000001f: PhysicalKeyboardKey.keyO, 0x00000020: PhysicalKeyboardKey.keyU, 0x00000021: PhysicalKeyboardKey.bracketLeft, 0x00000022: PhysicalKeyboardKey.keyI, 0x00000023: PhysicalKeyboardKey.keyP, 0x00000024: PhysicalKeyboardKey.enter, 0x00000025: PhysicalKeyboardKey.keyL, 0x00000026: PhysicalKeyboardKey.keyJ, 0x00000027: PhysicalKeyboardKey.quote, 0x00000028: PhysicalKeyboardKey.keyK, 0x00000029: PhysicalKeyboardKey.semicolon, 0x0000002a: PhysicalKeyboardKey.backslash, 0x0000002b: PhysicalKeyboardKey.comma, 0x0000002c: PhysicalKeyboardKey.slash, 0x0000002d: PhysicalKeyboardKey.keyN, 0x0000002e: PhysicalKeyboardKey.keyM, 0x0000002f: PhysicalKeyboardKey.period, 0x00000030: PhysicalKeyboardKey.tab, 0x00000031: PhysicalKeyboardKey.space, 0x00000032: PhysicalKeyboardKey.backquote, 0x00000033: PhysicalKeyboardKey.backspace, 0x00000035: PhysicalKeyboardKey.escape, 0x00000036: PhysicalKeyboardKey.metaRight, 0x00000037: PhysicalKeyboardKey.metaLeft, 0x00000038: PhysicalKeyboardKey.shiftLeft, 0x00000039: PhysicalKeyboardKey.capsLock, 0x0000003a: PhysicalKeyboardKey.altLeft, 0x0000003b: PhysicalKeyboardKey.controlLeft, 0x0000003c: PhysicalKeyboardKey.shiftRight, 0x0000003d: PhysicalKeyboardKey.altRight, 0x0000003e: PhysicalKeyboardKey.controlRight, 0x0000003f: PhysicalKeyboardKey.fn, 0x00000040: PhysicalKeyboardKey.f17, 0x00000041: PhysicalKeyboardKey.numpadDecimal, 0x00000043: PhysicalKeyboardKey.numpadMultiply, 0x00000045: PhysicalKeyboardKey.numpadAdd, 0x00000047: PhysicalKeyboardKey.numLock, 0x00000048: PhysicalKeyboardKey.audioVolumeUp, 0x00000049: PhysicalKeyboardKey.audioVolumeDown, 0x0000004a: PhysicalKeyboardKey.audioVolumeMute, 0x0000004b: PhysicalKeyboardKey.numpadDivide, 0x0000004c: PhysicalKeyboardKey.numpadEnter, 0x0000004e: PhysicalKeyboardKey.numpadSubtract, 0x0000004f: PhysicalKeyboardKey.f18, 0x00000050: PhysicalKeyboardKey.f19, 0x00000051: PhysicalKeyboardKey.numpadEqual, 0x00000052: PhysicalKeyboardKey.numpad0, 0x00000053: PhysicalKeyboardKey.numpad1, 0x00000054: PhysicalKeyboardKey.numpad2, 0x00000055: PhysicalKeyboardKey.numpad3, 0x00000056: PhysicalKeyboardKey.numpad4, 0x00000057: PhysicalKeyboardKey.numpad5, 0x00000058: PhysicalKeyboardKey.numpad6, 0x00000059: PhysicalKeyboardKey.numpad7, 0x0000005a: PhysicalKeyboardKey.f20, 0x0000005b: PhysicalKeyboardKey.numpad8, 0x0000005c: PhysicalKeyboardKey.numpad9, 0x0000005d: PhysicalKeyboardKey.intlYen, 0x0000005e: PhysicalKeyboardKey.intlRo, 0x0000005f: PhysicalKeyboardKey.numpadComma, 0x00000060: PhysicalKeyboardKey.f5, 0x00000061: PhysicalKeyboardKey.f6, 0x00000062: PhysicalKeyboardKey.f7, 0x00000063: PhysicalKeyboardKey.f3, 0x00000064: PhysicalKeyboardKey.f8, 0x00000065: PhysicalKeyboardKey.f9, 0x00000066: PhysicalKeyboardKey.lang2, 0x00000067: PhysicalKeyboardKey.f11, 0x00000068: PhysicalKeyboardKey.lang1, 0x00000069: PhysicalKeyboardKey.f13, 0x0000006a: PhysicalKeyboardKey.f16, 0x0000006b: PhysicalKeyboardKey.f14, 0x0000006d: PhysicalKeyboardKey.f10, 0x0000006e: PhysicalKeyboardKey.contextMenu, 0x0000006f: PhysicalKeyboardKey.f12, 0x00000071: PhysicalKeyboardKey.f15, 0x00000072: PhysicalKeyboardKey.insert, 0x00000073: PhysicalKeyboardKey.home, 0x00000074: PhysicalKeyboardKey.pageUp, 0x00000075: PhysicalKeyboardKey.delete, 0x00000076: PhysicalKeyboardKey.f4, 0x00000077: PhysicalKeyboardKey.end, 0x00000078: PhysicalKeyboardKey.f2, 0x00000079: PhysicalKeyboardKey.pageDown, 0x0000007a: PhysicalKeyboardKey.f1, 0x0000007b: PhysicalKeyboardKey.arrowLeft, 0x0000007c: PhysicalKeyboardKey.arrowRight, 0x0000007d: PhysicalKeyboardKey.arrowDown, 0x0000007e: PhysicalKeyboardKey.arrowUp, }; /// A map of macOS key codes which have printable representations, but appear /// on the number pad. Used to provide different key objects for keys like /// KEY_EQUALS and NUMPAD_EQUALS. const Map kMacOsNumPadMap = { 0x00000041: LogicalKeyboardKey.numpadDecimal, 0x00000043: LogicalKeyboardKey.numpadMultiply, 0x00000045: LogicalKeyboardKey.numpadAdd, 0x0000004b: LogicalKeyboardKey.numpadDivide, 0x0000004e: LogicalKeyboardKey.numpadSubtract, 0x00000051: LogicalKeyboardKey.numpadEqual, 0x00000052: LogicalKeyboardKey.numpad0, 0x00000053: LogicalKeyboardKey.numpad1, 0x00000054: LogicalKeyboardKey.numpad2, 0x00000055: LogicalKeyboardKey.numpad3, 0x00000056: LogicalKeyboardKey.numpad4, 0x00000057: LogicalKeyboardKey.numpad5, 0x00000058: LogicalKeyboardKey.numpad6, 0x00000059: LogicalKeyboardKey.numpad7, 0x0000005b: LogicalKeyboardKey.numpad8, 0x0000005c: LogicalKeyboardKey.numpad9, 0x0000005f: LogicalKeyboardKey.numpadComma, }; /// A map of macOS key codes which are numbered function keys, so that they /// can be excluded when asking "is the Fn modifier down?". const Map kMacOsFunctionKeyMap = { 0x00000040: LogicalKeyboardKey.f17, 0x0000004f: LogicalKeyboardKey.f18, 0x00000050: LogicalKeyboardKey.f19, 0x0000005a: LogicalKeyboardKey.f20, 0x00000060: LogicalKeyboardKey.f5, 0x00000061: LogicalKeyboardKey.f6, 0x00000062: LogicalKeyboardKey.f7, 0x00000063: LogicalKeyboardKey.f3, 0x00000064: LogicalKeyboardKey.f8, 0x00000065: LogicalKeyboardKey.f9, 0x00000067: LogicalKeyboardKey.f11, 0x00000069: LogicalKeyboardKey.f13, 0x0000006a: LogicalKeyboardKey.f16, 0x0000006b: LogicalKeyboardKey.f14, 0x0000006d: LogicalKeyboardKey.f10, 0x0000006f: LogicalKeyboardKey.f12, 0x00000071: LogicalKeyboardKey.f15, 0x00000076: LogicalKeyboardKey.f4, 0x00000078: LogicalKeyboardKey.f2, 0x0000007a: LogicalKeyboardKey.f1, }; /// A map of macOS key codes presenting [LogicalKeyboardKey]. /// /// Logical key codes are not available in macOS key events. Most of the logical keys /// are derived from its `characterIgnoringModifiers`, but those keys that don't /// have a character representation will be derived from their key codes using /// this map. const Map kMacOsToLogicalKey = { 36: LogicalKeyboardKey.enter, 48: LogicalKeyboardKey.tab, 51: LogicalKeyboardKey.backspace, 53: LogicalKeyboardKey.escape, 54: LogicalKeyboardKey.metaRight, 55: LogicalKeyboardKey.metaLeft, 56: LogicalKeyboardKey.shiftLeft, 57: LogicalKeyboardKey.capsLock, 58: LogicalKeyboardKey.altLeft, 59: LogicalKeyboardKey.controlLeft, 60: LogicalKeyboardKey.shiftRight, 61: LogicalKeyboardKey.altRight, 62: LogicalKeyboardKey.controlRight, 63: LogicalKeyboardKey.fn, 64: LogicalKeyboardKey.f17, 65: LogicalKeyboardKey.numpadDecimal, 67: LogicalKeyboardKey.numpadMultiply, 69: LogicalKeyboardKey.numpadAdd, 71: LogicalKeyboardKey.numLock, 72: LogicalKeyboardKey.audioVolumeUp, 73: LogicalKeyboardKey.audioVolumeDown, 74: LogicalKeyboardKey.audioVolumeMute, 75: LogicalKeyboardKey.numpadDivide, 76: LogicalKeyboardKey.numpadEnter, 78: LogicalKeyboardKey.numpadSubtract, 79: LogicalKeyboardKey.f18, 80: LogicalKeyboardKey.f19, 81: LogicalKeyboardKey.numpadEqual, 82: LogicalKeyboardKey.numpad0, 83: LogicalKeyboardKey.numpad1, 84: LogicalKeyboardKey.numpad2, 85: LogicalKeyboardKey.numpad3, 86: LogicalKeyboardKey.numpad4, 87: LogicalKeyboardKey.numpad5, 88: LogicalKeyboardKey.numpad6, 89: LogicalKeyboardKey.numpad7, 90: LogicalKeyboardKey.f20, 91: LogicalKeyboardKey.numpad8, 92: LogicalKeyboardKey.numpad9, 93: LogicalKeyboardKey.intlYen, 94: LogicalKeyboardKey.intlRo, 95: LogicalKeyboardKey.numpadComma, 96: LogicalKeyboardKey.f5, 97: LogicalKeyboardKey.f6, 98: LogicalKeyboardKey.f7, 99: LogicalKeyboardKey.f3, 100: LogicalKeyboardKey.f8, 101: LogicalKeyboardKey.f9, 102: LogicalKeyboardKey.lang2, 103: LogicalKeyboardKey.f11, 104: LogicalKeyboardKey.lang1, 105: LogicalKeyboardKey.f13, 106: LogicalKeyboardKey.f16, 107: LogicalKeyboardKey.f14, 109: LogicalKeyboardKey.f10, 110: LogicalKeyboardKey.contextMenu, 111: LogicalKeyboardKey.f12, 113: LogicalKeyboardKey.f15, 114: LogicalKeyboardKey.insert, 115: LogicalKeyboardKey.home, 116: LogicalKeyboardKey.pageUp, 117: LogicalKeyboardKey.delete, 118: LogicalKeyboardKey.f4, 119: LogicalKeyboardKey.end, 120: LogicalKeyboardKey.f2, 121: LogicalKeyboardKey.pageDown, 122: LogicalKeyboardKey.f1, 123: LogicalKeyboardKey.arrowLeft, 124: LogicalKeyboardKey.arrowRight, 125: LogicalKeyboardKey.arrowDown, 126: LogicalKeyboardKey.arrowUp, }; /// Maps iOS-specific key code values representing [PhysicalKeyboardKey]. /// /// iOS doesn't provide a scan code, but a virtual keycode to represent a physical key. const Map kIosToPhysicalKey = { 0x00000000: PhysicalKeyboardKey.usbReserved, 0x00000001: PhysicalKeyboardKey.usbErrorRollOver, 0x00000002: PhysicalKeyboardKey.usbPostFail, 0x00000003: PhysicalKeyboardKey.usbErrorUndefined, 0x00000004: PhysicalKeyboardKey.keyA, 0x00000005: PhysicalKeyboardKey.keyB, 0x00000006: PhysicalKeyboardKey.keyC, 0x00000007: PhysicalKeyboardKey.keyD, 0x00000008: PhysicalKeyboardKey.keyE, 0x00000009: PhysicalKeyboardKey.keyF, 0x0000000a: PhysicalKeyboardKey.keyG, 0x0000000b: PhysicalKeyboardKey.keyH, 0x0000000c: PhysicalKeyboardKey.keyI, 0x0000000d: PhysicalKeyboardKey.keyJ, 0x0000000e: PhysicalKeyboardKey.keyK, 0x0000000f: PhysicalKeyboardKey.keyL, 0x00000010: PhysicalKeyboardKey.keyM, 0x00000011: PhysicalKeyboardKey.keyN, 0x00000012: PhysicalKeyboardKey.keyO, 0x00000013: PhysicalKeyboardKey.keyP, 0x00000014: PhysicalKeyboardKey.keyQ, 0x00000015: PhysicalKeyboardKey.keyR, 0x00000016: PhysicalKeyboardKey.keyS, 0x00000017: PhysicalKeyboardKey.keyT, 0x00000018: PhysicalKeyboardKey.keyU, 0x00000019: PhysicalKeyboardKey.keyV, 0x0000001a: PhysicalKeyboardKey.keyW, 0x0000001b: PhysicalKeyboardKey.keyX, 0x0000001c: PhysicalKeyboardKey.keyY, 0x0000001d: PhysicalKeyboardKey.keyZ, 0x0000001e: PhysicalKeyboardKey.digit1, 0x0000001f: PhysicalKeyboardKey.digit2, 0x00000020: PhysicalKeyboardKey.digit3, 0x00000021: PhysicalKeyboardKey.digit4, 0x00000022: PhysicalKeyboardKey.digit5, 0x00000023: PhysicalKeyboardKey.digit6, 0x00000024: PhysicalKeyboardKey.digit7, 0x00000025: PhysicalKeyboardKey.digit8, 0x00000026: PhysicalKeyboardKey.digit9, 0x00000027: PhysicalKeyboardKey.digit0, 0x00000028: PhysicalKeyboardKey.enter, 0x00000029: PhysicalKeyboardKey.escape, 0x0000002a: PhysicalKeyboardKey.backspace, 0x0000002b: PhysicalKeyboardKey.tab, 0x0000002c: PhysicalKeyboardKey.space, 0x0000002d: PhysicalKeyboardKey.minus, 0x0000002e: PhysicalKeyboardKey.equal, 0x0000002f: PhysicalKeyboardKey.bracketLeft, 0x00000030: PhysicalKeyboardKey.bracketRight, 0x00000031: PhysicalKeyboardKey.backslash, 0x00000033: PhysicalKeyboardKey.semicolon, 0x00000034: PhysicalKeyboardKey.quote, 0x00000035: PhysicalKeyboardKey.backquote, 0x00000036: PhysicalKeyboardKey.comma, 0x00000037: PhysicalKeyboardKey.period, 0x00000038: PhysicalKeyboardKey.slash, 0x00000039: PhysicalKeyboardKey.capsLock, 0x0000003a: PhysicalKeyboardKey.f1, 0x0000003b: PhysicalKeyboardKey.f2, 0x0000003c: PhysicalKeyboardKey.f3, 0x0000003d: PhysicalKeyboardKey.f4, 0x0000003e: PhysicalKeyboardKey.f5, 0x0000003f: PhysicalKeyboardKey.f6, 0x00000040: PhysicalKeyboardKey.f7, 0x00000041: PhysicalKeyboardKey.f8, 0x00000042: PhysicalKeyboardKey.f9, 0x00000043: PhysicalKeyboardKey.f10, 0x00000044: PhysicalKeyboardKey.f11, 0x00000045: PhysicalKeyboardKey.f12, 0x00000046: PhysicalKeyboardKey.printScreen, 0x00000047: PhysicalKeyboardKey.scrollLock, 0x00000048: PhysicalKeyboardKey.pause, 0x00000049: PhysicalKeyboardKey.insert, 0x0000004a: PhysicalKeyboardKey.home, 0x0000004b: PhysicalKeyboardKey.pageUp, 0x0000004c: PhysicalKeyboardKey.delete, 0x0000004d: PhysicalKeyboardKey.end, 0x0000004e: PhysicalKeyboardKey.pageDown, 0x0000004f: PhysicalKeyboardKey.arrowRight, 0x00000050: PhysicalKeyboardKey.arrowLeft, 0x00000051: PhysicalKeyboardKey.arrowDown, 0x00000052: PhysicalKeyboardKey.arrowUp, 0x00000053: PhysicalKeyboardKey.numLock, 0x00000054: PhysicalKeyboardKey.numpadDivide, 0x00000055: PhysicalKeyboardKey.numpadMultiply, 0x00000056: PhysicalKeyboardKey.numpadSubtract, 0x00000057: PhysicalKeyboardKey.numpadAdd, 0x00000058: PhysicalKeyboardKey.numpadEnter, 0x00000059: PhysicalKeyboardKey.numpad1, 0x0000005a: PhysicalKeyboardKey.numpad2, 0x0000005b: PhysicalKeyboardKey.numpad3, 0x0000005c: PhysicalKeyboardKey.numpad4, 0x0000005d: PhysicalKeyboardKey.numpad5, 0x0000005e: PhysicalKeyboardKey.numpad6, 0x0000005f: PhysicalKeyboardKey.numpad7, 0x00000060: PhysicalKeyboardKey.numpad8, 0x00000061: PhysicalKeyboardKey.numpad9, 0x00000062: PhysicalKeyboardKey.numpad0, 0x00000063: PhysicalKeyboardKey.numpadDecimal, 0x00000064: PhysicalKeyboardKey.intlBackslash, 0x00000065: PhysicalKeyboardKey.contextMenu, 0x00000066: PhysicalKeyboardKey.power, 0x00000067: PhysicalKeyboardKey.numpadEqual, 0x00000068: PhysicalKeyboardKey.f13, 0x00000069: PhysicalKeyboardKey.f14, 0x0000006a: PhysicalKeyboardKey.f15, 0x0000006b: PhysicalKeyboardKey.f16, 0x0000006c: PhysicalKeyboardKey.f17, 0x0000006d: PhysicalKeyboardKey.f18, 0x0000006e: PhysicalKeyboardKey.f19, 0x0000006f: PhysicalKeyboardKey.f20, 0x00000070: PhysicalKeyboardKey.f21, 0x00000071: PhysicalKeyboardKey.f22, 0x00000072: PhysicalKeyboardKey.f23, 0x00000073: PhysicalKeyboardKey.f24, 0x00000074: PhysicalKeyboardKey.open, 0x00000075: PhysicalKeyboardKey.help, 0x00000077: PhysicalKeyboardKey.select, 0x00000079: PhysicalKeyboardKey.again, 0x0000007a: PhysicalKeyboardKey.undo, 0x0000007b: PhysicalKeyboardKey.cut, 0x0000007c: PhysicalKeyboardKey.copy, 0x0000007d: PhysicalKeyboardKey.paste, 0x0000007e: PhysicalKeyboardKey.find, 0x0000007f: PhysicalKeyboardKey.audioVolumeMute, 0x00000080: PhysicalKeyboardKey.audioVolumeUp, 0x00000081: PhysicalKeyboardKey.audioVolumeDown, 0x00000085: PhysicalKeyboardKey.numpadComma, 0x00000087: PhysicalKeyboardKey.intlRo, 0x00000088: PhysicalKeyboardKey.kanaMode, 0x00000089: PhysicalKeyboardKey.intlYen, 0x0000008a: PhysicalKeyboardKey.convert, 0x0000008b: PhysicalKeyboardKey.nonConvert, 0x00000090: PhysicalKeyboardKey.lang1, 0x00000091: PhysicalKeyboardKey.lang2, 0x00000092: PhysicalKeyboardKey.lang3, 0x00000093: PhysicalKeyboardKey.lang4, 0x00000094: PhysicalKeyboardKey.lang5, 0x0000009b: PhysicalKeyboardKey.abort, 0x000000a3: PhysicalKeyboardKey.props, 0x000000b6: PhysicalKeyboardKey.numpadParenLeft, 0x000000b7: PhysicalKeyboardKey.numpadParenRight, 0x000000bb: PhysicalKeyboardKey.numpadBackspace, 0x000000d0: PhysicalKeyboardKey.numpadMemoryStore, 0x000000d1: PhysicalKeyboardKey.numpadMemoryRecall, 0x000000d2: PhysicalKeyboardKey.numpadMemoryClear, 0x000000d3: PhysicalKeyboardKey.numpadMemoryAdd, 0x000000d4: PhysicalKeyboardKey.numpadMemorySubtract, 0x000000d7: PhysicalKeyboardKey.numpadSignChange, 0x000000d8: PhysicalKeyboardKey.numpadClear, 0x000000d9: PhysicalKeyboardKey.numpadClearEntry, 0x000000e0: PhysicalKeyboardKey.controlLeft, 0x000000e1: PhysicalKeyboardKey.shiftLeft, 0x000000e2: PhysicalKeyboardKey.altLeft, 0x000000e3: PhysicalKeyboardKey.metaLeft, 0x000000e4: PhysicalKeyboardKey.controlRight, 0x000000e5: PhysicalKeyboardKey.shiftRight, 0x000000e6: PhysicalKeyboardKey.altRight, 0x000000e7: PhysicalKeyboardKey.metaRight, }; /// Maps iOS specific string values of nonvisible keys to logical keys /// /// Some unprintable keys on iOS has literal names on their key label, such as /// "UIKeyInputEscape". See: /// https://developer.apple.com/documentation/uikit/uikeycommand/input_strings_for_special_keys?language=objc const Map kIosSpecialLogicalMap = { 'UIKeyInputEscape': LogicalKeyboardKey.escape, 'UIKeyInputF1': LogicalKeyboardKey.f1, 'UIKeyInputF2': LogicalKeyboardKey.f2, 'UIKeyInputF3': LogicalKeyboardKey.f3, 'UIKeyInputF4': LogicalKeyboardKey.f4, 'UIKeyInputF5': LogicalKeyboardKey.f5, 'UIKeyInputF6': LogicalKeyboardKey.f6, 'UIKeyInputF7': LogicalKeyboardKey.f7, 'UIKeyInputF8': LogicalKeyboardKey.f8, 'UIKeyInputF9': LogicalKeyboardKey.f9, 'UIKeyInputF10': LogicalKeyboardKey.f10, 'UIKeyInputF11': LogicalKeyboardKey.f11, 'UIKeyInputF12': LogicalKeyboardKey.f12, 'UIKeyInputUpArrow': LogicalKeyboardKey.arrowUp, 'UIKeyInputDownArrow': LogicalKeyboardKey.arrowDown, 'UIKeyInputLeftArrow': LogicalKeyboardKey.arrowLeft, 'UIKeyInputRightArrow': LogicalKeyboardKey.arrowRight, 'UIKeyInputHome': LogicalKeyboardKey.home, 'UIKeyInputEnd': LogicalKeyboardKey.enter, 'UIKeyInputPageUp': LogicalKeyboardKey.pageUp, 'UIKeyInputPageDown': LogicalKeyboardKey.pageDown, }; /// A map of iOS key codes which have printable representations, but appear /// on the number pad. Used to provide different key objects for keys like /// KEY_EQUALS and NUMPAD_EQUALS. const Map kIosNumPadMap = { 0x00000054: LogicalKeyboardKey.numpadDivide, 0x00000055: LogicalKeyboardKey.numpadMultiply, 0x00000056: LogicalKeyboardKey.numpadSubtract, 0x00000057: LogicalKeyboardKey.numpadAdd, 0x00000059: LogicalKeyboardKey.numpad1, 0x0000005a: LogicalKeyboardKey.numpad2, 0x0000005b: LogicalKeyboardKey.numpad3, 0x0000005c: LogicalKeyboardKey.numpad4, 0x0000005d: LogicalKeyboardKey.numpad5, 0x0000005e: LogicalKeyboardKey.numpad6, 0x0000005f: LogicalKeyboardKey.numpad7, 0x00000060: LogicalKeyboardKey.numpad8, 0x00000061: LogicalKeyboardKey.numpad9, 0x00000062: LogicalKeyboardKey.numpad0, 0x00000063: LogicalKeyboardKey.numpadDecimal, 0x00000067: LogicalKeyboardKey.numpadEqual, 0x00000085: LogicalKeyboardKey.numpadComma, 0x000000b6: LogicalKeyboardKey.numpadParenLeft, 0x000000b7: LogicalKeyboardKey.numpadParenRight, }; /// A map of iOS key codes presenting [LogicalKeyboardKey]. /// /// Logical key codes are not available in iOS key events. Most of the logical keys /// are derived from its `characterIgnoringModifiers`, but those keys that don't /// have a character representation will be derived from their key codes using /// this map. const Map kIosToLogicalKey = { 40: LogicalKeyboardKey.enter, 41: LogicalKeyboardKey.escape, 42: LogicalKeyboardKey.backspace, 43: LogicalKeyboardKey.tab, 57: LogicalKeyboardKey.capsLock, 58: LogicalKeyboardKey.f1, 59: LogicalKeyboardKey.f2, 60: LogicalKeyboardKey.f3, 61: LogicalKeyboardKey.f4, 62: LogicalKeyboardKey.f5, 63: LogicalKeyboardKey.f6, 64: LogicalKeyboardKey.f7, 65: LogicalKeyboardKey.f8, 66: LogicalKeyboardKey.f9, 67: LogicalKeyboardKey.f10, 68: LogicalKeyboardKey.f11, 69: LogicalKeyboardKey.f12, 73: LogicalKeyboardKey.insert, 74: LogicalKeyboardKey.home, 75: LogicalKeyboardKey.pageUp, 76: LogicalKeyboardKey.delete, 77: LogicalKeyboardKey.end, 78: LogicalKeyboardKey.pageDown, 79: LogicalKeyboardKey.arrowRight, 80: LogicalKeyboardKey.arrowLeft, 81: LogicalKeyboardKey.arrowDown, 82: LogicalKeyboardKey.arrowUp, 83: LogicalKeyboardKey.numLock, 84: LogicalKeyboardKey.numpadDivide, 85: LogicalKeyboardKey.numpadMultiply, 86: LogicalKeyboardKey.numpadSubtract, 87: LogicalKeyboardKey.numpadAdd, 88: LogicalKeyboardKey.numpadEnter, 89: LogicalKeyboardKey.numpad1, 90: LogicalKeyboardKey.numpad2, 91: LogicalKeyboardKey.numpad3, 92: LogicalKeyboardKey.numpad4, 93: LogicalKeyboardKey.numpad5, 94: LogicalKeyboardKey.numpad6, 95: LogicalKeyboardKey.numpad7, 96: LogicalKeyboardKey.numpad8, 97: LogicalKeyboardKey.numpad9, 98: LogicalKeyboardKey.numpad0, 99: LogicalKeyboardKey.numpadDecimal, 101: LogicalKeyboardKey.contextMenu, 103: LogicalKeyboardKey.numpadEqual, 104: LogicalKeyboardKey.f13, 105: LogicalKeyboardKey.f14, 106: LogicalKeyboardKey.f15, 107: LogicalKeyboardKey.f16, 108: LogicalKeyboardKey.f17, 109: LogicalKeyboardKey.f18, 110: LogicalKeyboardKey.f19, 111: LogicalKeyboardKey.f20, 127: LogicalKeyboardKey.audioVolumeMute, 128: LogicalKeyboardKey.audioVolumeUp, 129: LogicalKeyboardKey.audioVolumeDown, 133: LogicalKeyboardKey.numpadComma, 135: LogicalKeyboardKey.intlRo, 137: LogicalKeyboardKey.intlYen, 144: LogicalKeyboardKey.lang1, 145: LogicalKeyboardKey.lang2, 146: LogicalKeyboardKey.lang3, 147: LogicalKeyboardKey.lang4, 148: LogicalKeyboardKey.lang5, 224: LogicalKeyboardKey.controlLeft, 225: LogicalKeyboardKey.shiftLeft, 226: LogicalKeyboardKey.altLeft, 227: LogicalKeyboardKey.metaLeft, 228: LogicalKeyboardKey.controlRight, 229: LogicalKeyboardKey.shiftRight, 230: LogicalKeyboardKey.altRight, 231: LogicalKeyboardKey.metaRight, }; /// Maps GLFW-specific key codes to the matching [LogicalKeyboardKey]. const Map kGlfwToLogicalKey = { 32: LogicalKeyboardKey.space, 39: LogicalKeyboardKey.quote, 44: LogicalKeyboardKey.comma, 45: LogicalKeyboardKey.minus, 46: LogicalKeyboardKey.period, 47: LogicalKeyboardKey.slash, 48: LogicalKeyboardKey.digit0, 49: LogicalKeyboardKey.digit1, 50: LogicalKeyboardKey.digit2, 51: LogicalKeyboardKey.digit3, 52: LogicalKeyboardKey.digit4, 53: LogicalKeyboardKey.digit5, 54: LogicalKeyboardKey.digit6, 55: LogicalKeyboardKey.digit7, 56: LogicalKeyboardKey.digit8, 57: LogicalKeyboardKey.digit9, 59: LogicalKeyboardKey.semicolon, 61: LogicalKeyboardKey.equal, 65: LogicalKeyboardKey.keyA, 66: LogicalKeyboardKey.keyB, 67: LogicalKeyboardKey.keyC, 68: LogicalKeyboardKey.keyD, 69: LogicalKeyboardKey.keyE, 70: LogicalKeyboardKey.keyF, 71: LogicalKeyboardKey.keyG, 72: LogicalKeyboardKey.keyH, 73: LogicalKeyboardKey.keyI, 74: LogicalKeyboardKey.keyJ, 75: LogicalKeyboardKey.keyK, 76: LogicalKeyboardKey.keyL, 77: LogicalKeyboardKey.keyM, 78: LogicalKeyboardKey.keyN, 79: LogicalKeyboardKey.keyO, 80: LogicalKeyboardKey.keyP, 81: LogicalKeyboardKey.keyQ, 82: LogicalKeyboardKey.keyR, 83: LogicalKeyboardKey.keyS, 84: LogicalKeyboardKey.keyT, 85: LogicalKeyboardKey.keyU, 86: LogicalKeyboardKey.keyV, 87: LogicalKeyboardKey.keyW, 88: LogicalKeyboardKey.keyX, 89: LogicalKeyboardKey.keyY, 90: LogicalKeyboardKey.keyZ, 91: LogicalKeyboardKey.bracketLeft, 92: LogicalKeyboardKey.backslash, 93: LogicalKeyboardKey.bracketRight, 96: LogicalKeyboardKey.backquote, 256: LogicalKeyboardKey.escape, 257: LogicalKeyboardKey.enter, 258: LogicalKeyboardKey.tab, 259: LogicalKeyboardKey.backspace, 260: LogicalKeyboardKey.insert, 261: LogicalKeyboardKey.delete, 262: LogicalKeyboardKey.arrowRight, 263: LogicalKeyboardKey.arrowLeft, 264: LogicalKeyboardKey.arrowDown, 265: LogicalKeyboardKey.arrowUp, 266: LogicalKeyboardKey.pageUp, 267: LogicalKeyboardKey.pageDown, 268: LogicalKeyboardKey.home, 269: LogicalKeyboardKey.end, 280: LogicalKeyboardKey.capsLock, 282: LogicalKeyboardKey.numLock, 283: LogicalKeyboardKey.printScreen, 284: LogicalKeyboardKey.pause, 290: LogicalKeyboardKey.f1, 291: LogicalKeyboardKey.f2, 292: LogicalKeyboardKey.f3, 293: LogicalKeyboardKey.f4, 294: LogicalKeyboardKey.f5, 295: LogicalKeyboardKey.f6, 296: LogicalKeyboardKey.f7, 297: LogicalKeyboardKey.f8, 298: LogicalKeyboardKey.f9, 299: LogicalKeyboardKey.f10, 300: LogicalKeyboardKey.f11, 301: LogicalKeyboardKey.f12, 302: LogicalKeyboardKey.f13, 303: LogicalKeyboardKey.f14, 304: LogicalKeyboardKey.f15, 305: LogicalKeyboardKey.f16, 306: LogicalKeyboardKey.f17, 307: LogicalKeyboardKey.f18, 308: LogicalKeyboardKey.f19, 309: LogicalKeyboardKey.f20, 310: LogicalKeyboardKey.f21, 311: LogicalKeyboardKey.f22, 312: LogicalKeyboardKey.f23, 320: LogicalKeyboardKey.numpad0, 321: LogicalKeyboardKey.numpad1, 322: LogicalKeyboardKey.numpad2, 323: LogicalKeyboardKey.numpad3, 324: LogicalKeyboardKey.numpad4, 325: LogicalKeyboardKey.numpad5, 326: LogicalKeyboardKey.numpad6, 327: LogicalKeyboardKey.numpad7, 328: LogicalKeyboardKey.numpad8, 329: LogicalKeyboardKey.numpad9, 330: LogicalKeyboardKey.numpadDecimal, 331: LogicalKeyboardKey.numpadDivide, 332: LogicalKeyboardKey.numpadMultiply, 334: LogicalKeyboardKey.numpadAdd, 335: LogicalKeyboardKey.numpadEnter, 336: LogicalKeyboardKey.numpadEqual, 340: LogicalKeyboardKey.shiftLeft, 341: LogicalKeyboardKey.controlLeft, 342: LogicalKeyboardKey.altLeft, 343: LogicalKeyboardKey.metaLeft, 344: LogicalKeyboardKey.shiftRight, 345: LogicalKeyboardKey.controlRight, 346: LogicalKeyboardKey.altRight, 347: LogicalKeyboardKey.metaRight, 348: LogicalKeyboardKey.contextMenu, }; /// A map of GLFW key codes which have printable representations, but appear /// on the number pad. Used to provide different key objects for keys like /// KEY_EQUALS and NUMPAD_EQUALS. const Map kGlfwNumpadMap = { 320: LogicalKeyboardKey.numpad0, 321: LogicalKeyboardKey.numpad1, 322: LogicalKeyboardKey.numpad2, 323: LogicalKeyboardKey.numpad3, 324: LogicalKeyboardKey.numpad4, 325: LogicalKeyboardKey.numpad5, 326: LogicalKeyboardKey.numpad6, 327: LogicalKeyboardKey.numpad7, 328: LogicalKeyboardKey.numpad8, 329: LogicalKeyboardKey.numpad9, 330: LogicalKeyboardKey.numpadDecimal, 331: LogicalKeyboardKey.numpadDivide, 332: LogicalKeyboardKey.numpadMultiply, 334: LogicalKeyboardKey.numpadAdd, 336: LogicalKeyboardKey.numpadEqual, }; /// Maps GTK-specific key codes to the matching [LogicalKeyboardKey]. const Map kGtkToLogicalKey = { 165: LogicalKeyboardKey.intlYen, 64774: LogicalKeyboardKey.eraseEof, 64782: LogicalKeyboardKey.attn, 64789: LogicalKeyboardKey.copy, 64790: LogicalKeyboardKey.mediaPlay, 64795: LogicalKeyboardKey.exSel, 64797: LogicalKeyboardKey.printScreen, 64798: LogicalKeyboardKey.enter, 65027: LogicalKeyboardKey.altGraph, 65032: LogicalKeyboardKey.groupNext, 65034: LogicalKeyboardKey.groupPrevious, 65036: LogicalKeyboardKey.groupFirst, 65038: LogicalKeyboardKey.groupLast, 65056: LogicalKeyboardKey.tab, 65076: LogicalKeyboardKey.enter, 65288: LogicalKeyboardKey.backspace, 65289: LogicalKeyboardKey.tab, 65291: LogicalKeyboardKey.clear, 65293: LogicalKeyboardKey.enter, 65299: LogicalKeyboardKey.pause, 65300: LogicalKeyboardKey.scrollLock, 65307: LogicalKeyboardKey.escape, 65313: LogicalKeyboardKey.kanjiMode, 65316: LogicalKeyboardKey.romaji, 65317: LogicalKeyboardKey.hiragana, 65318: LogicalKeyboardKey.katakana, 65319: LogicalKeyboardKey.hiraganaKatakana, 65320: LogicalKeyboardKey.zenkaku, 65321: LogicalKeyboardKey.hankaku, 65322: LogicalKeyboardKey.zenkakuHankaku, 65327: LogicalKeyboardKey.eisu, 65329: LogicalKeyboardKey.hangulMode, 65332: LogicalKeyboardKey.hanjaMode, 65335: LogicalKeyboardKey.codeInput, 65340: LogicalKeyboardKey.singleCandidate, 65342: LogicalKeyboardKey.previousCandidate, 65360: LogicalKeyboardKey.home, 65361: LogicalKeyboardKey.arrowLeft, 65362: LogicalKeyboardKey.arrowUp, 65363: LogicalKeyboardKey.arrowRight, 65364: LogicalKeyboardKey.arrowDown, 65365: LogicalKeyboardKey.pageUp, 65366: LogicalKeyboardKey.pageDown, 65367: LogicalKeyboardKey.end, 65376: LogicalKeyboardKey.select, 65377: LogicalKeyboardKey.print, 65378: LogicalKeyboardKey.execute, 65379: LogicalKeyboardKey.insert, 65381: LogicalKeyboardKey.undo, 65382: LogicalKeyboardKey.redo, 65383: LogicalKeyboardKey.contextMenu, 65384: LogicalKeyboardKey.find, 65385: LogicalKeyboardKey.cancel, 65386: LogicalKeyboardKey.help, 65406: LogicalKeyboardKey.modeChange, 65407: LogicalKeyboardKey.numLock, 65408: LogicalKeyboardKey.space, 65417: LogicalKeyboardKey.tab, 65421: LogicalKeyboardKey.numpadEnter, 65425: LogicalKeyboardKey.f1, 65426: LogicalKeyboardKey.f2, 65427: LogicalKeyboardKey.f3, 65428: LogicalKeyboardKey.f4, 65429: LogicalKeyboardKey.numpad7, 65430: LogicalKeyboardKey.numpad4, 65431: LogicalKeyboardKey.numpad8, 65432: LogicalKeyboardKey.numpad6, 65433: LogicalKeyboardKey.numpad2, 65434: LogicalKeyboardKey.numpad9, 65435: LogicalKeyboardKey.numpad3, 65436: LogicalKeyboardKey.numpad1, 65438: LogicalKeyboardKey.numpad0, 65439: LogicalKeyboardKey.numpadDecimal, 65450: LogicalKeyboardKey.numpadMultiply, 65451: LogicalKeyboardKey.numpadAdd, 65453: LogicalKeyboardKey.numpadSubtract, 65454: LogicalKeyboardKey.period, 65455: LogicalKeyboardKey.numpadDivide, 65456: LogicalKeyboardKey.numpad0, 65457: LogicalKeyboardKey.numpad1, 65458: LogicalKeyboardKey.numpad2, 65459: LogicalKeyboardKey.numpad3, 65460: LogicalKeyboardKey.numpad4, 65461: LogicalKeyboardKey.numpad5, 65462: LogicalKeyboardKey.numpad6, 65463: LogicalKeyboardKey.numpad7, 65464: LogicalKeyboardKey.numpad8, 65465: LogicalKeyboardKey.numpad9, 65469: LogicalKeyboardKey.numpadEqual, 65470: LogicalKeyboardKey.f1, 65471: LogicalKeyboardKey.f2, 65472: LogicalKeyboardKey.f3, 65473: LogicalKeyboardKey.f4, 65474: LogicalKeyboardKey.f5, 65475: LogicalKeyboardKey.f6, 65476: LogicalKeyboardKey.f7, 65477: LogicalKeyboardKey.f8, 65478: LogicalKeyboardKey.f9, 65479: LogicalKeyboardKey.f10, 65480: LogicalKeyboardKey.f11, 65481: LogicalKeyboardKey.f12, 65482: LogicalKeyboardKey.f13, 65483: LogicalKeyboardKey.f14, 65484: LogicalKeyboardKey.f15, 65485: LogicalKeyboardKey.f16, 65486: LogicalKeyboardKey.f17, 65487: LogicalKeyboardKey.f18, 65488: LogicalKeyboardKey.f19, 65489: LogicalKeyboardKey.f20, 65490: LogicalKeyboardKey.f21, 65491: LogicalKeyboardKey.f22, 65492: LogicalKeyboardKey.f23, 65493: LogicalKeyboardKey.f24, 65505: LogicalKeyboardKey.shiftLeft, 65506: LogicalKeyboardKey.shiftRight, 65507: LogicalKeyboardKey.controlLeft, 65508: LogicalKeyboardKey.controlRight, 65509: LogicalKeyboardKey.capsLock, 65511: LogicalKeyboardKey.metaLeft, 65512: LogicalKeyboardKey.metaRight, 65513: LogicalKeyboardKey.altLeft, 65514: LogicalKeyboardKey.altRight, 65515: LogicalKeyboardKey.superKey, 65516: LogicalKeyboardKey.superKey, 65517: LogicalKeyboardKey.hyper, 65518: LogicalKeyboardKey.hyper, 65535: LogicalKeyboardKey.delete, 269025026: LogicalKeyboardKey.brightnessUp, 269025027: LogicalKeyboardKey.brightnessDown, 269025040: LogicalKeyboardKey.standby, 269025041: LogicalKeyboardKey.audioVolumeDown, 269025042: LogicalKeyboardKey.audioVolumeMute, 269025043: LogicalKeyboardKey.audioVolumeUp, 269025044: LogicalKeyboardKey.mediaPlay, 269025045: LogicalKeyboardKey.mediaStop, 269025046: LogicalKeyboardKey.mediaTrackPrevious, 269025047: LogicalKeyboardKey.mediaTrackNext, 269025048: LogicalKeyboardKey.browserHome, 269025049: LogicalKeyboardKey.launchMail, 269025051: LogicalKeyboardKey.browserSearch, 269025052: LogicalKeyboardKey.mediaRecord, 269025056: LogicalKeyboardKey.launchCalendar, 269025062: LogicalKeyboardKey.browserBack, 269025063: LogicalKeyboardKey.browserForward, 269025064: LogicalKeyboardKey.browserStop, 269025065: LogicalKeyboardKey.browserRefresh, 269025066: LogicalKeyboardKey.powerOff, 269025067: LogicalKeyboardKey.wakeUp, 269025068: LogicalKeyboardKey.eject, 269025069: LogicalKeyboardKey.launchScreenSaver, 269025071: LogicalKeyboardKey.sleep, 269025072: LogicalKeyboardKey.browserFavorites, 269025073: LogicalKeyboardKey.mediaPause, 269025086: LogicalKeyboardKey.mediaRewind, 269025110: LogicalKeyboardKey.close, 269025111: LogicalKeyboardKey.copy, 269025112: LogicalKeyboardKey.cut, 269025121: LogicalKeyboardKey.logOff, 269025128: LogicalKeyboardKey.newKey, 269025131: LogicalKeyboardKey.open, 269025133: LogicalKeyboardKey.paste, 269025134: LogicalKeyboardKey.launchPhone, 269025138: LogicalKeyboardKey.mailReply, 269025143: LogicalKeyboardKey.save, 269025147: LogicalKeyboardKey.mailSend, 269025148: LogicalKeyboardKey.spellCheck, 269025163: LogicalKeyboardKey.zoomIn, 269025164: LogicalKeyboardKey.zoomOut, 269025168: LogicalKeyboardKey.mailForward, 269025175: LogicalKeyboardKey.mediaFastForward, 269025191: LogicalKeyboardKey.suspend, }; /// A map of GTK key codes which have printable representations, but appear /// on the number pad. Used to provide different key objects for keys like /// KEY_EQUALS and NUMPAD_EQUALS. const Map kGtkNumpadMap = { 65429: LogicalKeyboardKey.numpad7, 65430: LogicalKeyboardKey.numpad4, 65431: LogicalKeyboardKey.numpad8, 65432: LogicalKeyboardKey.numpad6, 65433: LogicalKeyboardKey.numpad2, 65434: LogicalKeyboardKey.numpad9, 65435: LogicalKeyboardKey.numpad3, 65436: LogicalKeyboardKey.numpad1, 65438: LogicalKeyboardKey.numpad0, 65439: LogicalKeyboardKey.numpadDecimal, 65450: LogicalKeyboardKey.numpadMultiply, 65451: LogicalKeyboardKey.numpadAdd, 65453: LogicalKeyboardKey.numpadSubtract, 65455: LogicalKeyboardKey.numpadDivide, 65456: LogicalKeyboardKey.numpad0, 65457: LogicalKeyboardKey.numpad1, 65458: LogicalKeyboardKey.numpad2, 65459: LogicalKeyboardKey.numpad3, 65460: LogicalKeyboardKey.numpad4, 65461: LogicalKeyboardKey.numpad5, 65462: LogicalKeyboardKey.numpad6, 65463: LogicalKeyboardKey.numpad7, 65464: LogicalKeyboardKey.numpad8, 65465: LogicalKeyboardKey.numpad9, 65469: LogicalKeyboardKey.numpadEqual, }; /// Maps XKB specific key code values representing [PhysicalKeyboardKey]. const Map kLinuxToPhysicalKey = { 0x00000009: PhysicalKeyboardKey.escape, 0x0000000a: PhysicalKeyboardKey.digit1, 0x0000000b: PhysicalKeyboardKey.digit2, 0x0000000c: PhysicalKeyboardKey.digit3, 0x0000000d: PhysicalKeyboardKey.digit4, 0x0000000e: PhysicalKeyboardKey.digit5, 0x0000000f: PhysicalKeyboardKey.digit6, 0x00000010: PhysicalKeyboardKey.digit7, 0x00000011: PhysicalKeyboardKey.digit8, 0x00000012: PhysicalKeyboardKey.digit9, 0x00000013: PhysicalKeyboardKey.digit0, 0x00000014: PhysicalKeyboardKey.minus, 0x00000015: PhysicalKeyboardKey.equal, 0x00000016: PhysicalKeyboardKey.backspace, 0x00000017: PhysicalKeyboardKey.tab, 0x00000018: PhysicalKeyboardKey.keyQ, 0x00000019: PhysicalKeyboardKey.keyW, 0x0000001a: PhysicalKeyboardKey.keyE, 0x0000001b: PhysicalKeyboardKey.keyR, 0x0000001c: PhysicalKeyboardKey.keyT, 0x0000001d: PhysicalKeyboardKey.keyY, 0x0000001e: PhysicalKeyboardKey.keyU, 0x0000001f: PhysicalKeyboardKey.keyI, 0x00000020: PhysicalKeyboardKey.keyO, 0x00000021: PhysicalKeyboardKey.keyP, 0x00000022: PhysicalKeyboardKey.bracketLeft, 0x00000023: PhysicalKeyboardKey.bracketRight, 0x00000024: PhysicalKeyboardKey.enter, 0x00000025: PhysicalKeyboardKey.controlLeft, 0x00000026: PhysicalKeyboardKey.keyA, 0x00000027: PhysicalKeyboardKey.keyS, 0x00000028: PhysicalKeyboardKey.keyD, 0x00000029: PhysicalKeyboardKey.keyF, 0x0000002a: PhysicalKeyboardKey.keyG, 0x0000002b: PhysicalKeyboardKey.keyH, 0x0000002c: PhysicalKeyboardKey.keyJ, 0x0000002d: PhysicalKeyboardKey.keyK, 0x0000002e: PhysicalKeyboardKey.keyL, 0x0000002f: PhysicalKeyboardKey.semicolon, 0x00000030: PhysicalKeyboardKey.quote, 0x00000031: PhysicalKeyboardKey.backquote, 0x00000032: PhysicalKeyboardKey.shiftLeft, 0x00000033: PhysicalKeyboardKey.backslash, 0x00000034: PhysicalKeyboardKey.keyZ, 0x00000035: PhysicalKeyboardKey.keyX, 0x00000036: PhysicalKeyboardKey.keyC, 0x00000037: PhysicalKeyboardKey.keyV, 0x00000038: PhysicalKeyboardKey.keyB, 0x00000039: PhysicalKeyboardKey.keyN, 0x0000003a: PhysicalKeyboardKey.keyM, 0x0000003b: PhysicalKeyboardKey.comma, 0x0000003c: PhysicalKeyboardKey.period, 0x0000003d: PhysicalKeyboardKey.slash, 0x0000003e: PhysicalKeyboardKey.shiftRight, 0x0000003f: PhysicalKeyboardKey.numpadMultiply, 0x00000040: PhysicalKeyboardKey.altLeft, 0x00000041: PhysicalKeyboardKey.space, 0x00000042: PhysicalKeyboardKey.capsLock, 0x00000043: PhysicalKeyboardKey.f1, 0x00000044: PhysicalKeyboardKey.f2, 0x00000045: PhysicalKeyboardKey.f3, 0x00000046: PhysicalKeyboardKey.f4, 0x00000047: PhysicalKeyboardKey.f5, 0x00000048: PhysicalKeyboardKey.f6, 0x00000049: PhysicalKeyboardKey.f7, 0x0000004a: PhysicalKeyboardKey.f8, 0x0000004b: PhysicalKeyboardKey.f9, 0x0000004c: PhysicalKeyboardKey.f10, 0x0000004d: PhysicalKeyboardKey.numLock, 0x0000004e: PhysicalKeyboardKey.scrollLock, 0x0000004f: PhysicalKeyboardKey.numpad7, 0x00000050: PhysicalKeyboardKey.numpad8, 0x00000051: PhysicalKeyboardKey.numpad9, 0x00000052: PhysicalKeyboardKey.numpadSubtract, 0x00000053: PhysicalKeyboardKey.numpad4, 0x00000054: PhysicalKeyboardKey.numpad5, 0x00000055: PhysicalKeyboardKey.numpad6, 0x00000056: PhysicalKeyboardKey.numpadAdd, 0x00000057: PhysicalKeyboardKey.numpad1, 0x00000058: PhysicalKeyboardKey.numpad2, 0x00000059: PhysicalKeyboardKey.numpad3, 0x0000005a: PhysicalKeyboardKey.numpad0, 0x0000005b: PhysicalKeyboardKey.numpadDecimal, 0x0000005d: PhysicalKeyboardKey.lang5, 0x0000005e: PhysicalKeyboardKey.intlBackslash, 0x0000005f: PhysicalKeyboardKey.f11, 0x00000060: PhysicalKeyboardKey.f12, 0x00000061: PhysicalKeyboardKey.intlRo, 0x00000062: PhysicalKeyboardKey.lang3, 0x00000063: PhysicalKeyboardKey.lang4, 0x00000064: PhysicalKeyboardKey.convert, 0x00000065: PhysicalKeyboardKey.kanaMode, 0x00000066: PhysicalKeyboardKey.nonConvert, 0x00000068: PhysicalKeyboardKey.numpadEnter, 0x00000069: PhysicalKeyboardKey.controlRight, 0x0000006a: PhysicalKeyboardKey.numpadDivide, 0x0000006b: PhysicalKeyboardKey.printScreen, 0x0000006c: PhysicalKeyboardKey.altRight, 0x0000006e: PhysicalKeyboardKey.home, 0x0000006f: PhysicalKeyboardKey.arrowUp, 0x00000070: PhysicalKeyboardKey.pageUp, 0x00000071: PhysicalKeyboardKey.arrowLeft, 0x00000072: PhysicalKeyboardKey.arrowRight, 0x00000073: PhysicalKeyboardKey.end, 0x00000074: PhysicalKeyboardKey.arrowDown, 0x00000075: PhysicalKeyboardKey.pageDown, 0x00000076: PhysicalKeyboardKey.insert, 0x00000077: PhysicalKeyboardKey.delete, 0x00000079: PhysicalKeyboardKey.audioVolumeMute, 0x0000007a: PhysicalKeyboardKey.audioVolumeDown, 0x0000007b: PhysicalKeyboardKey.audioVolumeUp, 0x0000007c: PhysicalKeyboardKey.power, 0x0000007d: PhysicalKeyboardKey.numpadEqual, 0x0000007e: PhysicalKeyboardKey.numpadSignChange, 0x0000007f: PhysicalKeyboardKey.pause, 0x00000080: PhysicalKeyboardKey.showAllWindows, 0x00000081: PhysicalKeyboardKey.numpadComma, 0x00000082: PhysicalKeyboardKey.lang1, 0x00000083: PhysicalKeyboardKey.lang2, 0x00000084: PhysicalKeyboardKey.intlYen, 0x00000085: PhysicalKeyboardKey.metaLeft, 0x00000086: PhysicalKeyboardKey.metaRight, 0x00000087: PhysicalKeyboardKey.contextMenu, 0x00000088: PhysicalKeyboardKey.browserStop, 0x00000089: PhysicalKeyboardKey.again, 0x0000008b: PhysicalKeyboardKey.undo, 0x0000008c: PhysicalKeyboardKey.select, 0x0000008d: PhysicalKeyboardKey.copy, 0x0000008e: PhysicalKeyboardKey.open, 0x0000008f: PhysicalKeyboardKey.paste, 0x00000090: PhysicalKeyboardKey.find, 0x00000091: PhysicalKeyboardKey.cut, 0x00000092: PhysicalKeyboardKey.help, 0x00000094: PhysicalKeyboardKey.launchApp2, 0x00000096: PhysicalKeyboardKey.sleep, 0x00000097: PhysicalKeyboardKey.wakeUp, 0x00000098: PhysicalKeyboardKey.launchApp1, 0x0000009e: PhysicalKeyboardKey.launchInternetBrowser, 0x000000a0: PhysicalKeyboardKey.lockScreen, 0x000000a3: PhysicalKeyboardKey.launchMail, 0x000000a4: PhysicalKeyboardKey.browserFavorites, 0x000000a6: PhysicalKeyboardKey.browserBack, 0x000000a7: PhysicalKeyboardKey.browserForward, 0x000000a9: PhysicalKeyboardKey.eject, 0x000000ab: PhysicalKeyboardKey.mediaTrackNext, 0x000000ac: PhysicalKeyboardKey.mediaPlayPause, 0x000000ad: PhysicalKeyboardKey.mediaTrackPrevious, 0x000000ae: PhysicalKeyboardKey.mediaStop, 0x000000af: PhysicalKeyboardKey.mediaRecord, 0x000000b0: PhysicalKeyboardKey.mediaRewind, 0x000000b1: PhysicalKeyboardKey.launchPhone, 0x000000b3: PhysicalKeyboardKey.mediaSelect, 0x000000b4: PhysicalKeyboardKey.browserHome, 0x000000b5: PhysicalKeyboardKey.browserRefresh, 0x000000b6: PhysicalKeyboardKey.exit, 0x000000bb: PhysicalKeyboardKey.numpadParenLeft, 0x000000bc: PhysicalKeyboardKey.numpadParenRight, 0x000000bd: PhysicalKeyboardKey.newKey, 0x000000be: PhysicalKeyboardKey.redo, 0x000000bf: PhysicalKeyboardKey.f13, 0x000000c0: PhysicalKeyboardKey.f14, 0x000000c1: PhysicalKeyboardKey.f15, 0x000000c2: PhysicalKeyboardKey.f16, 0x000000c3: PhysicalKeyboardKey.f17, 0x000000c4: PhysicalKeyboardKey.f18, 0x000000c5: PhysicalKeyboardKey.f19, 0x000000c6: PhysicalKeyboardKey.f20, 0x000000c7: PhysicalKeyboardKey.f21, 0x000000c8: PhysicalKeyboardKey.f22, 0x000000c9: PhysicalKeyboardKey.f23, 0x000000ca: PhysicalKeyboardKey.f24, 0x000000d1: PhysicalKeyboardKey.mediaPause, 0x000000d6: PhysicalKeyboardKey.close, 0x000000d7: PhysicalKeyboardKey.mediaPlay, 0x000000d8: PhysicalKeyboardKey.mediaFastForward, 0x000000d9: PhysicalKeyboardKey.bassBoost, 0x000000da: PhysicalKeyboardKey.print, 0x000000e1: PhysicalKeyboardKey.browserSearch, 0x000000e8: PhysicalKeyboardKey.brightnessDown, 0x000000e9: PhysicalKeyboardKey.brightnessUp, 0x000000eb: PhysicalKeyboardKey.displayToggleIntExt, 0x000000ed: PhysicalKeyboardKey.kbdIllumDown, 0x000000ee: PhysicalKeyboardKey.kbdIllumUp, 0x000000ef: PhysicalKeyboardKey.mailSend, 0x000000f0: PhysicalKeyboardKey.mailReply, 0x000000f1: PhysicalKeyboardKey.mailForward, 0x000000f2: PhysicalKeyboardKey.save, 0x000000f3: PhysicalKeyboardKey.launchDocuments, 0x000000fc: PhysicalKeyboardKey.brightnessAuto, 0x00000100: PhysicalKeyboardKey.microphoneMuteToggle, 0x0000016e: PhysicalKeyboardKey.info, 0x00000172: PhysicalKeyboardKey.programGuide, 0x0000017a: PhysicalKeyboardKey.closedCaptionToggle, 0x0000017c: PhysicalKeyboardKey.zoomToggle, 0x0000017e: PhysicalKeyboardKey.launchKeyboardLayout, 0x00000190: PhysicalKeyboardKey.launchAudioBrowser, 0x00000195: PhysicalKeyboardKey.launchCalendar, 0x0000019d: PhysicalKeyboardKey.mediaLast, 0x000001a2: PhysicalKeyboardKey.channelUp, 0x000001a3: PhysicalKeyboardKey.channelDown, 0x000001aa: PhysicalKeyboardKey.zoomIn, 0x000001ab: PhysicalKeyboardKey.zoomOut, 0x000001ad: PhysicalKeyboardKey.launchWordProcessor, 0x000001af: PhysicalKeyboardKey.launchSpreadsheet, 0x000001b5: PhysicalKeyboardKey.launchContacts, 0x000001b7: PhysicalKeyboardKey.brightnessToggle, 0x000001b8: PhysicalKeyboardKey.spellCheck, 0x000001b9: PhysicalKeyboardKey.logOff, 0x0000024b: PhysicalKeyboardKey.launchControlPanel, 0x0000024c: PhysicalKeyboardKey.selectTask, 0x0000024d: PhysicalKeyboardKey.launchScreenSaver, 0x0000024e: PhysicalKeyboardKey.speechInputToggle, 0x0000024f: PhysicalKeyboardKey.launchAssistant, 0x00000250: PhysicalKeyboardKey.keyboardLayoutSelect, 0x00000258: PhysicalKeyboardKey.brightnessMinimum, 0x00000259: PhysicalKeyboardKey.brightnessMaximum, 0x00000281: PhysicalKeyboardKey.privacyScreenToggle, }; /// Maps Web KeyboardEvent codes to the matching [LogicalKeyboardKey]. const Map kWebToLogicalKey = { 'AVRInput': LogicalKeyboardKey.avrInput, 'AVRPower': LogicalKeyboardKey.avrPower, 'Accel': LogicalKeyboardKey.accel, 'Accept': LogicalKeyboardKey.accept, 'Again': LogicalKeyboardKey.again, 'AllCandidates': LogicalKeyboardKey.allCandidates, 'Alphanumeric': LogicalKeyboardKey.alphanumeric, 'AltGraph': LogicalKeyboardKey.altGraph, 'AppSwitch': LogicalKeyboardKey.appSwitch, 'ArrowDown': LogicalKeyboardKey.arrowDown, 'ArrowLeft': LogicalKeyboardKey.arrowLeft, 'ArrowRight': LogicalKeyboardKey.arrowRight, 'ArrowUp': LogicalKeyboardKey.arrowUp, 'Attn': LogicalKeyboardKey.attn, 'AudioBalanceLeft': LogicalKeyboardKey.audioBalanceLeft, 'AudioBalanceRight': LogicalKeyboardKey.audioBalanceRight, 'AudioBassBoostDown': LogicalKeyboardKey.audioBassBoostDown, 'AudioBassBoostToggle': LogicalKeyboardKey.audioBassBoostToggle, 'AudioBassBoostUp': LogicalKeyboardKey.audioBassBoostUp, 'AudioFaderFront': LogicalKeyboardKey.audioFaderFront, 'AudioFaderRear': LogicalKeyboardKey.audioFaderRear, 'AudioSurroundModeNext': LogicalKeyboardKey.audioSurroundModeNext, 'AudioTrebleDown': LogicalKeyboardKey.audioTrebleDown, 'AudioTrebleUp': LogicalKeyboardKey.audioTrebleUp, 'AudioVolumeDown': LogicalKeyboardKey.audioVolumeDown, 'AudioVolumeMute': LogicalKeyboardKey.audioVolumeMute, 'AudioVolumeUp': LogicalKeyboardKey.audioVolumeUp, 'Backspace': LogicalKeyboardKey.backspace, 'BrightnessDown': LogicalKeyboardKey.brightnessDown, 'BrightnessUp': LogicalKeyboardKey.brightnessUp, 'BrowserBack': LogicalKeyboardKey.browserBack, 'BrowserFavorites': LogicalKeyboardKey.browserFavorites, 'BrowserForward': LogicalKeyboardKey.browserForward, 'BrowserHome': LogicalKeyboardKey.browserHome, 'BrowserRefresh': LogicalKeyboardKey.browserRefresh, 'BrowserSearch': LogicalKeyboardKey.browserSearch, 'BrowserStop': LogicalKeyboardKey.browserStop, 'Call': LogicalKeyboardKey.call, 'Camera': LogicalKeyboardKey.camera, 'CameraFocus': LogicalKeyboardKey.cameraFocus, 'Cancel': LogicalKeyboardKey.cancel, 'CapsLock': LogicalKeyboardKey.capsLock, 'ChannelDown': LogicalKeyboardKey.channelDown, 'ChannelUp': LogicalKeyboardKey.channelUp, 'Clear': LogicalKeyboardKey.clear, 'Close': LogicalKeyboardKey.close, 'ClosedCaptionToggle': LogicalKeyboardKey.closedCaptionToggle, 'CodeInput': LogicalKeyboardKey.codeInput, 'ColorF0Red': LogicalKeyboardKey.colorF0Red, 'ColorF1Green': LogicalKeyboardKey.colorF1Green, 'ColorF2Yellow': LogicalKeyboardKey.colorF2Yellow, 'ColorF3Blue': LogicalKeyboardKey.colorF3Blue, 'ColorF4Grey': LogicalKeyboardKey.colorF4Grey, 'ColorF5Brown': LogicalKeyboardKey.colorF5Brown, 'Compose': LogicalKeyboardKey.compose, 'ContextMenu': LogicalKeyboardKey.contextMenu, 'Convert': LogicalKeyboardKey.convert, 'Copy': LogicalKeyboardKey.copy, 'CrSel': LogicalKeyboardKey.crSel, 'Cut': LogicalKeyboardKey.cut, 'DVR': LogicalKeyboardKey.dvr, 'Delete': LogicalKeyboardKey.delete, 'Dimmer': LogicalKeyboardKey.dimmer, 'DisplaySwap': LogicalKeyboardKey.displaySwap, 'Eisu': LogicalKeyboardKey.eisu, 'Eject': LogicalKeyboardKey.eject, 'End': LogicalKeyboardKey.end, 'EndCall': LogicalKeyboardKey.endCall, 'Enter': LogicalKeyboardKey.enter, 'EraseEof': LogicalKeyboardKey.eraseEof, 'Esc': LogicalKeyboardKey.escape, 'Escape': LogicalKeyboardKey.escape, 'ExSel': LogicalKeyboardKey.exSel, 'Execute': LogicalKeyboardKey.execute, 'Exit': LogicalKeyboardKey.exit, 'F1': LogicalKeyboardKey.f1, 'F10': LogicalKeyboardKey.f10, 'F11': LogicalKeyboardKey.f11, 'F12': LogicalKeyboardKey.f12, 'F13': LogicalKeyboardKey.f13, 'F14': LogicalKeyboardKey.f14, 'F15': LogicalKeyboardKey.f15, 'F16': LogicalKeyboardKey.f16, 'F17': LogicalKeyboardKey.f17, 'F18': LogicalKeyboardKey.f18, 'F19': LogicalKeyboardKey.f19, 'F2': LogicalKeyboardKey.f2, 'F20': LogicalKeyboardKey.f20, 'F21': LogicalKeyboardKey.f21, 'F22': LogicalKeyboardKey.f22, 'F23': LogicalKeyboardKey.f23, 'F24': LogicalKeyboardKey.f24, 'F3': LogicalKeyboardKey.f3, 'F4': LogicalKeyboardKey.f4, 'F5': LogicalKeyboardKey.f5, 'F6': LogicalKeyboardKey.f6, 'F7': LogicalKeyboardKey.f7, 'F8': LogicalKeyboardKey.f8, 'F9': LogicalKeyboardKey.f9, 'FavoriteClear0': LogicalKeyboardKey.favoriteClear0, 'FavoriteClear1': LogicalKeyboardKey.favoriteClear1, 'FavoriteClear2': LogicalKeyboardKey.favoriteClear2, 'FavoriteClear3': LogicalKeyboardKey.favoriteClear3, 'FavoriteRecall0': LogicalKeyboardKey.favoriteRecall0, 'FavoriteRecall1': LogicalKeyboardKey.favoriteRecall1, 'FavoriteRecall2': LogicalKeyboardKey.favoriteRecall2, 'FavoriteRecall3': LogicalKeyboardKey.favoriteRecall3, 'FavoriteStore0': LogicalKeyboardKey.favoriteStore0, 'FavoriteStore1': LogicalKeyboardKey.favoriteStore1, 'FavoriteStore2': LogicalKeyboardKey.favoriteStore2, 'FavoriteStore3': LogicalKeyboardKey.favoriteStore3, 'FinalMode': LogicalKeyboardKey.finalMode, 'Find': LogicalKeyboardKey.find, 'Fn': LogicalKeyboardKey.fn, 'FnLock': LogicalKeyboardKey.fnLock, 'GoBack': LogicalKeyboardKey.goBack, 'GoHome': LogicalKeyboardKey.goHome, 'GroupFirst': LogicalKeyboardKey.groupFirst, 'GroupLast': LogicalKeyboardKey.groupLast, 'GroupNext': LogicalKeyboardKey.groupNext, 'GroupPrevious': LogicalKeyboardKey.groupPrevious, 'Guide': LogicalKeyboardKey.guide, 'GuideNextDay': LogicalKeyboardKey.guideNextDay, 'GuidePreviousDay': LogicalKeyboardKey.guidePreviousDay, 'HangulMode': LogicalKeyboardKey.hangulMode, 'HanjaMode': LogicalKeyboardKey.hanjaMode, 'Hankaku': LogicalKeyboardKey.hankaku, 'HeadsetHook': LogicalKeyboardKey.headsetHook, 'Help': LogicalKeyboardKey.help, 'Hibernate': LogicalKeyboardKey.hibernate, 'Hiragana': LogicalKeyboardKey.hiragana, 'HiraganaKatakana': LogicalKeyboardKey.hiraganaKatakana, 'Home': LogicalKeyboardKey.home, 'Hyper': LogicalKeyboardKey.hyper, 'Info': LogicalKeyboardKey.info, 'Insert': LogicalKeyboardKey.insert, 'InstantReplay': LogicalKeyboardKey.instantReplay, 'JunjaMode': LogicalKeyboardKey.junjaMode, 'KanaMode': LogicalKeyboardKey.kanaMode, 'KanjiMode': LogicalKeyboardKey.kanjiMode, 'Katakana': LogicalKeyboardKey.katakana, 'Key11': LogicalKeyboardKey.key11, 'Key12': LogicalKeyboardKey.key12, 'LastNumberRedial': LogicalKeyboardKey.lastNumberRedial, 'LaunchApplication1': LogicalKeyboardKey.launchApplication1, 'LaunchApplication2': LogicalKeyboardKey.launchApplication2, 'LaunchAssistant': LogicalKeyboardKey.launchAssistant, 'LaunchCalendar': LogicalKeyboardKey.launchCalendar, 'LaunchContacts': LogicalKeyboardKey.launchContacts, 'LaunchControlPanel': LogicalKeyboardKey.launchControlPanel, 'LaunchMail': LogicalKeyboardKey.launchMail, 'LaunchMediaPlayer': LogicalKeyboardKey.launchMediaPlayer, 'LaunchMusicPlayer': LogicalKeyboardKey.launchMusicPlayer, 'LaunchPhone': LogicalKeyboardKey.launchPhone, 'LaunchScreenSaver': LogicalKeyboardKey.launchScreenSaver, 'LaunchSpreadsheet': LogicalKeyboardKey.launchSpreadsheet, 'LaunchWebBrowser': LogicalKeyboardKey.launchWebBrowser, 'LaunchWebCam': LogicalKeyboardKey.launchWebCam, 'LaunchWordProcessor': LogicalKeyboardKey.launchWordProcessor, 'Link': LogicalKeyboardKey.link, 'ListProgram': LogicalKeyboardKey.listProgram, 'LiveContent': LogicalKeyboardKey.liveContent, 'Lock': LogicalKeyboardKey.lock, 'LogOff': LogicalKeyboardKey.logOff, 'MailForward': LogicalKeyboardKey.mailForward, 'MailReply': LogicalKeyboardKey.mailReply, 'MailSend': LogicalKeyboardKey.mailSend, 'MannerMode': LogicalKeyboardKey.mannerMode, 'MediaApps': LogicalKeyboardKey.mediaApps, 'MediaAudioTrack': LogicalKeyboardKey.mediaAudioTrack, 'MediaClose': LogicalKeyboardKey.mediaClose, 'MediaFastForward': LogicalKeyboardKey.mediaFastForward, 'MediaLast': LogicalKeyboardKey.mediaLast, 'MediaPause': LogicalKeyboardKey.mediaPause, 'MediaPlay': LogicalKeyboardKey.mediaPlay, 'MediaPlayPause': LogicalKeyboardKey.mediaPlayPause, 'MediaRecord': LogicalKeyboardKey.mediaRecord, 'MediaRewind': LogicalKeyboardKey.mediaRewind, 'MediaSkip': LogicalKeyboardKey.mediaSkip, 'MediaSkipBackward': LogicalKeyboardKey.mediaSkipBackward, 'MediaSkipForward': LogicalKeyboardKey.mediaSkipForward, 'MediaStepBackward': LogicalKeyboardKey.mediaStepBackward, 'MediaStepForward': LogicalKeyboardKey.mediaStepForward, 'MediaStop': LogicalKeyboardKey.mediaStop, 'MediaTopMenu': LogicalKeyboardKey.mediaTopMenu, 'MediaTrackNext': LogicalKeyboardKey.mediaTrackNext, 'MediaTrackPrevious': LogicalKeyboardKey.mediaTrackPrevious, 'MicrophoneToggle': LogicalKeyboardKey.microphoneToggle, 'MicrophoneVolumeDown': LogicalKeyboardKey.microphoneVolumeDown, 'MicrophoneVolumeMute': LogicalKeyboardKey.microphoneVolumeMute, 'MicrophoneVolumeUp': LogicalKeyboardKey.microphoneVolumeUp, 'ModeChange': LogicalKeyboardKey.modeChange, 'NavigateIn': LogicalKeyboardKey.navigateIn, 'NavigateNext': LogicalKeyboardKey.navigateNext, 'NavigateOut': LogicalKeyboardKey.navigateOut, 'NavigatePrevious': LogicalKeyboardKey.navigatePrevious, 'New': LogicalKeyboardKey.newKey, 'NextCandidate': LogicalKeyboardKey.nextCandidate, 'NextFavoriteChannel': LogicalKeyboardKey.nextFavoriteChannel, 'NextUserProfile': LogicalKeyboardKey.nextUserProfile, 'NonConvert': LogicalKeyboardKey.nonConvert, 'Notification': LogicalKeyboardKey.notification, 'NumLock': LogicalKeyboardKey.numLock, 'OnDemand': LogicalKeyboardKey.onDemand, 'Open': LogicalKeyboardKey.open, 'PageDown': LogicalKeyboardKey.pageDown, 'PageUp': LogicalKeyboardKey.pageUp, 'Pairing': LogicalKeyboardKey.pairing, 'Paste': LogicalKeyboardKey.paste, 'Pause': LogicalKeyboardKey.pause, 'PinPDown': LogicalKeyboardKey.pInPDown, 'PinPMove': LogicalKeyboardKey.pInPMove, 'PinPToggle': LogicalKeyboardKey.pInPToggle, 'PinPUp': LogicalKeyboardKey.pInPUp, 'Play': LogicalKeyboardKey.play, 'PlaySpeedDown': LogicalKeyboardKey.playSpeedDown, 'PlaySpeedReset': LogicalKeyboardKey.playSpeedReset, 'PlaySpeedUp': LogicalKeyboardKey.playSpeedUp, 'Power': LogicalKeyboardKey.power, 'PowerOff': LogicalKeyboardKey.powerOff, 'PreviousCandidate': LogicalKeyboardKey.previousCandidate, 'Print': LogicalKeyboardKey.print, 'PrintScreen': LogicalKeyboardKey.printScreen, 'Process': LogicalKeyboardKey.process, 'Props': LogicalKeyboardKey.props, 'RandomToggle': LogicalKeyboardKey.randomToggle, 'RcLowBattery': LogicalKeyboardKey.rcLowBattery, 'RecordSpeedNext': LogicalKeyboardKey.recordSpeedNext, 'Redo': LogicalKeyboardKey.redo, 'RfBypass': LogicalKeyboardKey.rfBypass, 'Romaji': LogicalKeyboardKey.romaji, 'STBInput': LogicalKeyboardKey.stbInput, 'STBPower': LogicalKeyboardKey.stbPower, 'Save': LogicalKeyboardKey.save, 'ScanChannelsToggle': LogicalKeyboardKey.scanChannelsToggle, 'ScreenModeNext': LogicalKeyboardKey.screenModeNext, 'ScrollLock': LogicalKeyboardKey.scrollLock, 'Select': LogicalKeyboardKey.select, 'Settings': LogicalKeyboardKey.settings, 'ShiftLevel5': LogicalKeyboardKey.shiftLevel5, 'SingleCandidate': LogicalKeyboardKey.singleCandidate, 'Soft1': LogicalKeyboardKey.soft1, 'Soft2': LogicalKeyboardKey.soft2, 'Soft3': LogicalKeyboardKey.soft3, 'Soft4': LogicalKeyboardKey.soft4, 'Soft5': LogicalKeyboardKey.soft5, 'Soft6': LogicalKeyboardKey.soft6, 'Soft7': LogicalKeyboardKey.soft7, 'Soft8': LogicalKeyboardKey.soft8, 'SpeechCorrectionList': LogicalKeyboardKey.speechCorrectionList, 'SpeechInputToggle': LogicalKeyboardKey.speechInputToggle, 'SpellCheck': LogicalKeyboardKey.spellCheck, 'SplitScreenToggle': LogicalKeyboardKey.splitScreenToggle, 'Standby': LogicalKeyboardKey.standby, 'Subtitle': LogicalKeyboardKey.subtitle, 'Super': LogicalKeyboardKey.superKey, 'Symbol': LogicalKeyboardKey.symbol, 'SymbolLock': LogicalKeyboardKey.symbolLock, 'TV': LogicalKeyboardKey.tv, 'TV3DMode': LogicalKeyboardKey.tv3DMode, 'TVAntennaCable': LogicalKeyboardKey.tvAntennaCable, 'TVAudioDescription': LogicalKeyboardKey.tvAudioDescription, 'TVAudioDescriptionMixDown': LogicalKeyboardKey.tvAudioDescriptionMixDown, 'TVAudioDescriptionMixUp': LogicalKeyboardKey.tvAudioDescriptionMixUp, 'TVContentsMenu': LogicalKeyboardKey.tvContentsMenu, 'TVDataService': LogicalKeyboardKey.tvDataService, 'TVInput': LogicalKeyboardKey.tvInput, 'TVInputComponent1': LogicalKeyboardKey.tvInputComponent1, 'TVInputComponent2': LogicalKeyboardKey.tvInputComponent2, 'TVInputComposite1': LogicalKeyboardKey.tvInputComposite1, 'TVInputComposite2': LogicalKeyboardKey.tvInputComposite2, 'TVInputHDMI1': LogicalKeyboardKey.tvInputHDMI1, 'TVInputHDMI2': LogicalKeyboardKey.tvInputHDMI2, 'TVInputHDMI3': LogicalKeyboardKey.tvInputHDMI3, 'TVInputHDMI4': LogicalKeyboardKey.tvInputHDMI4, 'TVInputVGA1': LogicalKeyboardKey.tvInputVGA1, 'TVMediaContext': LogicalKeyboardKey.tvMediaContext, 'TVNetwork': LogicalKeyboardKey.tvNetwork, 'TVNumberEntry': LogicalKeyboardKey.tvNumberEntry, 'TVPower': LogicalKeyboardKey.tvPower, 'TVRadioService': LogicalKeyboardKey.tvRadioService, 'TVSatellite': LogicalKeyboardKey.tvSatellite, 'TVSatelliteBS': LogicalKeyboardKey.tvSatelliteBS, 'TVSatelliteCS': LogicalKeyboardKey.tvSatelliteCS, 'TVSatelliteToggle': LogicalKeyboardKey.tvSatelliteToggle, 'TVTerrestrialAnalog': LogicalKeyboardKey.tvTerrestrialAnalog, 'TVTerrestrialDigital': LogicalKeyboardKey.tvTerrestrialDigital, 'TVTimer': LogicalKeyboardKey.tvTimer, 'Tab': LogicalKeyboardKey.tab, 'Teletext': LogicalKeyboardKey.teletext, 'Undo': LogicalKeyboardKey.undo, 'Unidentified': LogicalKeyboardKey.unidentified, 'VideoModeNext': LogicalKeyboardKey.videoModeNext, 'VoiceDial': LogicalKeyboardKey.voiceDial, 'WakeUp': LogicalKeyboardKey.wakeUp, 'Wink': LogicalKeyboardKey.wink, 'Zenkaku': LogicalKeyboardKey.zenkaku, 'ZenkakuHankaku': LogicalKeyboardKey.zenkakuHankaku, 'ZoomIn': LogicalKeyboardKey.zoomIn, 'ZoomOut': LogicalKeyboardKey.zoomOut, 'ZoomToggle': LogicalKeyboardKey.zoomToggle, }; /// Maps Web KeyboardEvent codes to the matching [PhysicalKeyboardKey]. const Map kWebToPhysicalKey = { 'Abort': PhysicalKeyboardKey.abort, 'Again': PhysicalKeyboardKey.again, 'AltLeft': PhysicalKeyboardKey.altLeft, 'AltRight': PhysicalKeyboardKey.altRight, 'ArrowDown': PhysicalKeyboardKey.arrowDown, 'ArrowLeft': PhysicalKeyboardKey.arrowLeft, 'ArrowRight': PhysicalKeyboardKey.arrowRight, 'ArrowUp': PhysicalKeyboardKey.arrowUp, 'AudioVolumeDown': PhysicalKeyboardKey.audioVolumeDown, 'AudioVolumeMute': PhysicalKeyboardKey.audioVolumeMute, 'AudioVolumeUp': PhysicalKeyboardKey.audioVolumeUp, 'Backquote': PhysicalKeyboardKey.backquote, 'Backslash': PhysicalKeyboardKey.backslash, 'Backspace': PhysicalKeyboardKey.backspace, 'BracketLeft': PhysicalKeyboardKey.bracketLeft, 'BracketRight': PhysicalKeyboardKey.bracketRight, 'BrightnessDown': PhysicalKeyboardKey.brightnessDown, 'BrightnessUp': PhysicalKeyboardKey.brightnessUp, 'BrowserBack': PhysicalKeyboardKey.browserBack, 'BrowserFavorites': PhysicalKeyboardKey.browserFavorites, 'BrowserForward': PhysicalKeyboardKey.browserForward, 'BrowserHome': PhysicalKeyboardKey.browserHome, 'BrowserRefresh': PhysicalKeyboardKey.browserRefresh, 'BrowserSearch': PhysicalKeyboardKey.browserSearch, 'BrowserStop': PhysicalKeyboardKey.browserStop, 'CapsLock': PhysicalKeyboardKey.capsLock, 'Comma': PhysicalKeyboardKey.comma, 'ContextMenu': PhysicalKeyboardKey.contextMenu, 'ControlLeft': PhysicalKeyboardKey.controlLeft, 'ControlRight': PhysicalKeyboardKey.controlRight, 'Convert': PhysicalKeyboardKey.convert, 'Copy': PhysicalKeyboardKey.copy, 'Cut': PhysicalKeyboardKey.cut, 'Delete': PhysicalKeyboardKey.delete, 'Digit0': PhysicalKeyboardKey.digit0, 'Digit1': PhysicalKeyboardKey.digit1, 'Digit2': PhysicalKeyboardKey.digit2, 'Digit3': PhysicalKeyboardKey.digit3, 'Digit4': PhysicalKeyboardKey.digit4, 'Digit5': PhysicalKeyboardKey.digit5, 'Digit6': PhysicalKeyboardKey.digit6, 'Digit7': PhysicalKeyboardKey.digit7, 'Digit8': PhysicalKeyboardKey.digit8, 'Digit9': PhysicalKeyboardKey.digit9, 'DisplayToggleIntExt': PhysicalKeyboardKey.displayToggleIntExt, 'Eject': PhysicalKeyboardKey.eject, 'End': PhysicalKeyboardKey.end, 'Enter': PhysicalKeyboardKey.enter, 'Equal': PhysicalKeyboardKey.equal, 'Escape': PhysicalKeyboardKey.escape, 'Esc': PhysicalKeyboardKey.escape, 'F1': PhysicalKeyboardKey.f1, 'F10': PhysicalKeyboardKey.f10, 'F11': PhysicalKeyboardKey.f11, 'F12': PhysicalKeyboardKey.f12, 'F13': PhysicalKeyboardKey.f13, 'F14': PhysicalKeyboardKey.f14, 'F15': PhysicalKeyboardKey.f15, 'F16': PhysicalKeyboardKey.f16, 'F17': PhysicalKeyboardKey.f17, 'F18': PhysicalKeyboardKey.f18, 'F19': PhysicalKeyboardKey.f19, 'F2': PhysicalKeyboardKey.f2, 'F20': PhysicalKeyboardKey.f20, 'F21': PhysicalKeyboardKey.f21, 'F22': PhysicalKeyboardKey.f22, 'F23': PhysicalKeyboardKey.f23, 'F24': PhysicalKeyboardKey.f24, 'F3': PhysicalKeyboardKey.f3, 'F4': PhysicalKeyboardKey.f4, 'F5': PhysicalKeyboardKey.f5, 'F6': PhysicalKeyboardKey.f6, 'F7': PhysicalKeyboardKey.f7, 'F8': PhysicalKeyboardKey.f8, 'F9': PhysicalKeyboardKey.f9, 'Find': PhysicalKeyboardKey.find, 'Fn': PhysicalKeyboardKey.fn, 'FnLock': PhysicalKeyboardKey.fnLock, 'GameButton1': PhysicalKeyboardKey.gameButton1, 'GameButton10': PhysicalKeyboardKey.gameButton10, 'GameButton11': PhysicalKeyboardKey.gameButton11, 'GameButton12': PhysicalKeyboardKey.gameButton12, 'GameButton13': PhysicalKeyboardKey.gameButton13, 'GameButton14': PhysicalKeyboardKey.gameButton14, 'GameButton15': PhysicalKeyboardKey.gameButton15, 'GameButton16': PhysicalKeyboardKey.gameButton16, 'GameButton2': PhysicalKeyboardKey.gameButton2, 'GameButton3': PhysicalKeyboardKey.gameButton3, 'GameButton4': PhysicalKeyboardKey.gameButton4, 'GameButton5': PhysicalKeyboardKey.gameButton5, 'GameButton6': PhysicalKeyboardKey.gameButton6, 'GameButton7': PhysicalKeyboardKey.gameButton7, 'GameButton8': PhysicalKeyboardKey.gameButton8, 'GameButton9': PhysicalKeyboardKey.gameButton9, 'GameButtonA': PhysicalKeyboardKey.gameButtonA, 'GameButtonB': PhysicalKeyboardKey.gameButtonB, 'GameButtonC': PhysicalKeyboardKey.gameButtonC, 'GameButtonLeft1': PhysicalKeyboardKey.gameButtonLeft1, 'GameButtonLeft2': PhysicalKeyboardKey.gameButtonLeft2, 'GameButtonMode': PhysicalKeyboardKey.gameButtonMode, 'GameButtonRight1': PhysicalKeyboardKey.gameButtonRight1, 'GameButtonRight2': PhysicalKeyboardKey.gameButtonRight2, 'GameButtonSelect': PhysicalKeyboardKey.gameButtonSelect, 'GameButtonStart': PhysicalKeyboardKey.gameButtonStart, 'GameButtonThumbLeft': PhysicalKeyboardKey.gameButtonThumbLeft, 'GameButtonThumbRight': PhysicalKeyboardKey.gameButtonThumbRight, 'GameButtonX': PhysicalKeyboardKey.gameButtonX, 'GameButtonY': PhysicalKeyboardKey.gameButtonY, 'GameButtonZ': PhysicalKeyboardKey.gameButtonZ, 'Help': PhysicalKeyboardKey.help, 'Home': PhysicalKeyboardKey.home, 'Hyper': PhysicalKeyboardKey.hyper, 'Insert': PhysicalKeyboardKey.insert, 'IntlBackslash': PhysicalKeyboardKey.intlBackslash, 'IntlRo': PhysicalKeyboardKey.intlRo, 'IntlYen': PhysicalKeyboardKey.intlYen, 'KanaMode': PhysicalKeyboardKey.kanaMode, 'KeyA': PhysicalKeyboardKey.keyA, 'KeyB': PhysicalKeyboardKey.keyB, 'KeyC': PhysicalKeyboardKey.keyC, 'KeyD': PhysicalKeyboardKey.keyD, 'KeyE': PhysicalKeyboardKey.keyE, 'KeyF': PhysicalKeyboardKey.keyF, 'KeyG': PhysicalKeyboardKey.keyG, 'KeyH': PhysicalKeyboardKey.keyH, 'KeyI': PhysicalKeyboardKey.keyI, 'KeyJ': PhysicalKeyboardKey.keyJ, 'KeyK': PhysicalKeyboardKey.keyK, 'KeyL': PhysicalKeyboardKey.keyL, 'KeyM': PhysicalKeyboardKey.keyM, 'KeyN': PhysicalKeyboardKey.keyN, 'KeyO': PhysicalKeyboardKey.keyO, 'KeyP': PhysicalKeyboardKey.keyP, 'KeyQ': PhysicalKeyboardKey.keyQ, 'KeyR': PhysicalKeyboardKey.keyR, 'KeyS': PhysicalKeyboardKey.keyS, 'KeyT': PhysicalKeyboardKey.keyT, 'KeyU': PhysicalKeyboardKey.keyU, 'KeyV': PhysicalKeyboardKey.keyV, 'KeyW': PhysicalKeyboardKey.keyW, 'KeyX': PhysicalKeyboardKey.keyX, 'KeyY': PhysicalKeyboardKey.keyY, 'KeyZ': PhysicalKeyboardKey.keyZ, 'KeyboardLayoutSelect': PhysicalKeyboardKey.keyboardLayoutSelect, 'Lang1': PhysicalKeyboardKey.lang1, 'Lang2': PhysicalKeyboardKey.lang2, 'Lang3': PhysicalKeyboardKey.lang3, 'Lang4': PhysicalKeyboardKey.lang4, 'Lang5': PhysicalKeyboardKey.lang5, 'LaunchApp1': PhysicalKeyboardKey.launchApp1, 'LaunchApp2': PhysicalKeyboardKey.launchApp2, 'LaunchAssistant': PhysicalKeyboardKey.launchAssistant, 'LaunchControlPanel': PhysicalKeyboardKey.launchControlPanel, 'LaunchMail': PhysicalKeyboardKey.launchMail, 'LaunchScreenSaver': PhysicalKeyboardKey.launchScreenSaver, 'MailForward': PhysicalKeyboardKey.mailForward, 'MailReply': PhysicalKeyboardKey.mailReply, 'MailSend': PhysicalKeyboardKey.mailSend, 'MediaFastForward': PhysicalKeyboardKey.mediaFastForward, 'MediaPause': PhysicalKeyboardKey.mediaPause, 'MediaPlay': PhysicalKeyboardKey.mediaPlay, 'MediaPlayPause': PhysicalKeyboardKey.mediaPlayPause, 'MediaRecord': PhysicalKeyboardKey.mediaRecord, 'MediaRewind': PhysicalKeyboardKey.mediaRewind, 'MediaSelect': PhysicalKeyboardKey.mediaSelect, 'MediaStop': PhysicalKeyboardKey.mediaStop, 'MediaTrackNext': PhysicalKeyboardKey.mediaTrackNext, 'MediaTrackPrevious': PhysicalKeyboardKey.mediaTrackPrevious, 'MetaLeft': PhysicalKeyboardKey.metaLeft, 'MetaRight': PhysicalKeyboardKey.metaRight, 'MicrophoneMuteToggle': PhysicalKeyboardKey.microphoneMuteToggle, 'Minus': PhysicalKeyboardKey.minus, 'NonConvert': PhysicalKeyboardKey.nonConvert, 'NumLock': PhysicalKeyboardKey.numLock, 'Numpad0': PhysicalKeyboardKey.numpad0, 'Numpad1': PhysicalKeyboardKey.numpad1, 'Numpad2': PhysicalKeyboardKey.numpad2, 'Numpad3': PhysicalKeyboardKey.numpad3, 'Numpad4': PhysicalKeyboardKey.numpad4, 'Numpad5': PhysicalKeyboardKey.numpad5, 'Numpad6': PhysicalKeyboardKey.numpad6, 'Numpad7': PhysicalKeyboardKey.numpad7, 'Numpad8': PhysicalKeyboardKey.numpad8, 'Numpad9': PhysicalKeyboardKey.numpad9, 'NumpadAdd': PhysicalKeyboardKey.numpadAdd, 'NumpadBackspace': PhysicalKeyboardKey.numpadBackspace, 'NumpadClear': PhysicalKeyboardKey.numpadClear, 'NumpadClearEntry': PhysicalKeyboardKey.numpadClearEntry, 'NumpadComma': PhysicalKeyboardKey.numpadComma, 'NumpadDecimal': PhysicalKeyboardKey.numpadDecimal, 'NumpadDivide': PhysicalKeyboardKey.numpadDivide, 'NumpadEnter': PhysicalKeyboardKey.numpadEnter, 'NumpadEqual': PhysicalKeyboardKey.numpadEqual, 'NumpadMemoryAdd': PhysicalKeyboardKey.numpadMemoryAdd, 'NumpadMemoryClear': PhysicalKeyboardKey.numpadMemoryClear, 'NumpadMemoryRecall': PhysicalKeyboardKey.numpadMemoryRecall, 'NumpadMemoryStore': PhysicalKeyboardKey.numpadMemoryStore, 'NumpadMemorySubtract': PhysicalKeyboardKey.numpadMemorySubtract, 'NumpadMultiply': PhysicalKeyboardKey.numpadMultiply, 'NumpadParenLeft': PhysicalKeyboardKey.numpadParenLeft, 'NumpadParenRight': PhysicalKeyboardKey.numpadParenRight, 'NumpadSubtract': PhysicalKeyboardKey.numpadSubtract, 'Open': PhysicalKeyboardKey.open, 'PageDown': PhysicalKeyboardKey.pageDown, 'PageUp': PhysicalKeyboardKey.pageUp, 'Paste': PhysicalKeyboardKey.paste, 'Pause': PhysicalKeyboardKey.pause, 'Period': PhysicalKeyboardKey.period, 'Power': PhysicalKeyboardKey.power, 'PrintScreen': PhysicalKeyboardKey.printScreen, 'PrivacyScreenToggle': PhysicalKeyboardKey.privacyScreenToggle, 'Props': PhysicalKeyboardKey.props, 'Quote': PhysicalKeyboardKey.quote, 'Resume': PhysicalKeyboardKey.resume, 'ScrollLock': PhysicalKeyboardKey.scrollLock, 'Select': PhysicalKeyboardKey.select, 'SelectTask': PhysicalKeyboardKey.selectTask, 'Semicolon': PhysicalKeyboardKey.semicolon, 'ShiftLeft': PhysicalKeyboardKey.shiftLeft, 'ShiftRight': PhysicalKeyboardKey.shiftRight, 'ShowAllWindows': PhysicalKeyboardKey.showAllWindows, 'Slash': PhysicalKeyboardKey.slash, 'Sleep': PhysicalKeyboardKey.sleep, 'Space': PhysicalKeyboardKey.space, 'Super': PhysicalKeyboardKey.superKey, 'Suspend': PhysicalKeyboardKey.suspend, 'Tab': PhysicalKeyboardKey.tab, 'Turbo': PhysicalKeyboardKey.turbo, 'Undo': PhysicalKeyboardKey.undo, 'WakeUp': PhysicalKeyboardKey.wakeUp, 'ZoomToggle': PhysicalKeyboardKey.zoomToggle, }; /// A map of Web KeyboardEvent codes which have printable representations, but appear /// on the number pad. Used to provide different key objects for keys like /// KEY_EQUALS and NUMPAD_EQUALS. const Map kWebNumPadMap = { 'Numpad0': LogicalKeyboardKey.numpad0, 'Numpad1': LogicalKeyboardKey.numpad1, 'Numpad2': LogicalKeyboardKey.numpad2, 'Numpad3': LogicalKeyboardKey.numpad3, 'Numpad4': LogicalKeyboardKey.numpad4, 'Numpad5': LogicalKeyboardKey.numpad5, 'Numpad6': LogicalKeyboardKey.numpad6, 'Numpad7': LogicalKeyboardKey.numpad7, 'Numpad8': LogicalKeyboardKey.numpad8, 'Numpad9': LogicalKeyboardKey.numpad9, 'NumpadAdd': LogicalKeyboardKey.numpadAdd, 'NumpadComma': LogicalKeyboardKey.numpadComma, 'NumpadDecimal': LogicalKeyboardKey.numpadDecimal, 'NumpadDivide': LogicalKeyboardKey.numpadDivide, 'NumpadEqual': LogicalKeyboardKey.numpadEqual, 'NumpadMultiply': LogicalKeyboardKey.numpadMultiply, 'NumpadParenLeft': LogicalKeyboardKey.numpadParenLeft, 'NumpadParenRight': LogicalKeyboardKey.numpadParenRight, 'NumpadSubtract': LogicalKeyboardKey.numpadSubtract, }; /// A map of Web KeyboardEvent keys which needs to be decided based on location, /// typically for numpad keys and modifier keys. Used to provide different key /// objects for keys like KEY_EQUALS and NUMPAD_EQUALS. const Map> kWebLocationMap = >{ '*': [ LogicalKeyboardKey.asterisk, null, null, LogicalKeyboardKey.numpadMultiply, ], '+': [LogicalKeyboardKey.add, null, null, LogicalKeyboardKey.numpadAdd], '-': [ LogicalKeyboardKey.minus, null, null, LogicalKeyboardKey.numpadSubtract, ], '.': [ LogicalKeyboardKey.period, null, null, LogicalKeyboardKey.numpadDecimal, ], '/': [LogicalKeyboardKey.slash, null, null, LogicalKeyboardKey.numpadDivide], '0': [LogicalKeyboardKey.digit0, null, null, LogicalKeyboardKey.numpad0], '1': [LogicalKeyboardKey.digit1, null, null, LogicalKeyboardKey.numpad1], '2': [LogicalKeyboardKey.digit2, null, null, LogicalKeyboardKey.numpad2], '3': [LogicalKeyboardKey.digit3, null, null, LogicalKeyboardKey.numpad3], '4': [LogicalKeyboardKey.digit4, null, null, LogicalKeyboardKey.numpad4], '5': [LogicalKeyboardKey.digit5, null, null, LogicalKeyboardKey.numpad5], '6': [LogicalKeyboardKey.digit6, null, null, LogicalKeyboardKey.numpad6], '7': [LogicalKeyboardKey.digit7, null, null, LogicalKeyboardKey.numpad7], '8': [LogicalKeyboardKey.digit8, null, null, LogicalKeyboardKey.numpad8], '9': [LogicalKeyboardKey.digit9, null, null, LogicalKeyboardKey.numpad9], 'Alt': [ LogicalKeyboardKey.altLeft, LogicalKeyboardKey.altLeft, LogicalKeyboardKey.altRight, null, ], 'AltGraph': [ LogicalKeyboardKey.altGraph, null, LogicalKeyboardKey.altGraph, null, ], 'ArrowDown': [ LogicalKeyboardKey.arrowDown, null, null, LogicalKeyboardKey.numpad2, ], 'ArrowLeft': [ LogicalKeyboardKey.arrowLeft, null, null, LogicalKeyboardKey.numpad4, ], 'ArrowRight': [ LogicalKeyboardKey.arrowRight, null, null, LogicalKeyboardKey.numpad6, ], 'ArrowUp': [ LogicalKeyboardKey.arrowUp, null, null, LogicalKeyboardKey.numpad8, ], 'Clear': [LogicalKeyboardKey.clear, null, null, LogicalKeyboardKey.numpad5], 'Control': [ LogicalKeyboardKey.controlLeft, LogicalKeyboardKey.controlLeft, LogicalKeyboardKey.controlRight, null, ], 'Delete': [ LogicalKeyboardKey.delete, null, null, LogicalKeyboardKey.numpadDecimal, ], 'End': [LogicalKeyboardKey.end, null, null, LogicalKeyboardKey.numpad1], 'Enter': [ LogicalKeyboardKey.enter, null, null, LogicalKeyboardKey.numpadEnter, ], 'Home': [LogicalKeyboardKey.home, null, null, LogicalKeyboardKey.numpad7], 'Insert': [ LogicalKeyboardKey.insert, null, null, LogicalKeyboardKey.numpad0, ], 'Meta': [ LogicalKeyboardKey.metaLeft, LogicalKeyboardKey.metaLeft, LogicalKeyboardKey.metaRight, null, ], 'PageDown': [ LogicalKeyboardKey.pageDown, null, null, LogicalKeyboardKey.numpad3, ], 'PageUp': [ LogicalKeyboardKey.pageUp, null, null, LogicalKeyboardKey.numpad9, ], 'Shift': [ LogicalKeyboardKey.shiftLeft, LogicalKeyboardKey.shiftLeft, LogicalKeyboardKey.shiftRight, null, ], }; /// Maps Windows KeyboardEvent codes to the matching [LogicalKeyboardKey]. const Map kWindowsToLogicalKey = { 3: LogicalKeyboardKey.cancel, 8: LogicalKeyboardKey.backspace, 9: LogicalKeyboardKey.tab, 12: LogicalKeyboardKey.clear, 13: LogicalKeyboardKey.enter, 16: LogicalKeyboardKey.shiftLeft, 17: LogicalKeyboardKey.controlLeft, 19: LogicalKeyboardKey.pause, 20: LogicalKeyboardKey.capsLock, 21: LogicalKeyboardKey.lang1, 23: LogicalKeyboardKey.junjaMode, 24: LogicalKeyboardKey.finalMode, 25: LogicalKeyboardKey.kanjiMode, 27: LogicalKeyboardKey.escape, 28: LogicalKeyboardKey.convert, 30: LogicalKeyboardKey.accept, 31: LogicalKeyboardKey.modeChange, 32: LogicalKeyboardKey.space, 33: LogicalKeyboardKey.pageUp, 34: LogicalKeyboardKey.pageDown, 35: LogicalKeyboardKey.end, 36: LogicalKeyboardKey.home, 37: LogicalKeyboardKey.arrowLeft, 38: LogicalKeyboardKey.arrowUp, 39: LogicalKeyboardKey.arrowRight, 40: LogicalKeyboardKey.arrowDown, 41: LogicalKeyboardKey.select, 42: LogicalKeyboardKey.print, 43: LogicalKeyboardKey.execute, 44: LogicalKeyboardKey.printScreen, 45: LogicalKeyboardKey.insert, 46: LogicalKeyboardKey.delete, 47: LogicalKeyboardKey.help, 48: LogicalKeyboardKey.digit0, 49: LogicalKeyboardKey.digit1, 50: LogicalKeyboardKey.digit2, 51: LogicalKeyboardKey.digit3, 52: LogicalKeyboardKey.digit4, 53: LogicalKeyboardKey.digit5, 54: LogicalKeyboardKey.digit6, 55: LogicalKeyboardKey.digit7, 56: LogicalKeyboardKey.digit8, 57: LogicalKeyboardKey.digit9, 65: LogicalKeyboardKey.keyA, 66: LogicalKeyboardKey.keyB, 67: LogicalKeyboardKey.keyC, 68: LogicalKeyboardKey.keyD, 69: LogicalKeyboardKey.keyE, 70: LogicalKeyboardKey.keyF, 71: LogicalKeyboardKey.keyG, 72: LogicalKeyboardKey.keyH, 73: LogicalKeyboardKey.keyI, 74: LogicalKeyboardKey.keyJ, 75: LogicalKeyboardKey.keyK, 76: LogicalKeyboardKey.keyL, 77: LogicalKeyboardKey.keyM, 78: LogicalKeyboardKey.keyN, 79: LogicalKeyboardKey.keyO, 80: LogicalKeyboardKey.keyP, 81: LogicalKeyboardKey.keyQ, 82: LogicalKeyboardKey.keyR, 83: LogicalKeyboardKey.keyS, 84: LogicalKeyboardKey.keyT, 85: LogicalKeyboardKey.keyU, 86: LogicalKeyboardKey.keyV, 87: LogicalKeyboardKey.keyW, 88: LogicalKeyboardKey.keyX, 89: LogicalKeyboardKey.keyY, 90: LogicalKeyboardKey.keyZ, 91: LogicalKeyboardKey.metaLeft, 92: LogicalKeyboardKey.metaRight, 93: LogicalKeyboardKey.contextMenu, 95: LogicalKeyboardKey.sleep, 96: LogicalKeyboardKey.numpad0, 97: LogicalKeyboardKey.numpad1, 98: LogicalKeyboardKey.numpad2, 99: LogicalKeyboardKey.numpad3, 100: LogicalKeyboardKey.numpad4, 101: LogicalKeyboardKey.numpad5, 102: LogicalKeyboardKey.numpad6, 103: LogicalKeyboardKey.numpad7, 104: LogicalKeyboardKey.numpad8, 105: LogicalKeyboardKey.numpad9, 106: LogicalKeyboardKey.numpadMultiply, 107: LogicalKeyboardKey.numpadAdd, 108: LogicalKeyboardKey.numpadComma, 109: LogicalKeyboardKey.numpadSubtract, 110: LogicalKeyboardKey.numpadDecimal, 111: LogicalKeyboardKey.numpadDivide, 112: LogicalKeyboardKey.f1, 113: LogicalKeyboardKey.f2, 114: LogicalKeyboardKey.f3, 115: LogicalKeyboardKey.f4, 116: LogicalKeyboardKey.f5, 117: LogicalKeyboardKey.f6, 118: LogicalKeyboardKey.f7, 119: LogicalKeyboardKey.f8, 120: LogicalKeyboardKey.f9, 121: LogicalKeyboardKey.f10, 122: LogicalKeyboardKey.f11, 123: LogicalKeyboardKey.f12, 124: LogicalKeyboardKey.f13, 125: LogicalKeyboardKey.f14, 126: LogicalKeyboardKey.f15, 127: LogicalKeyboardKey.f16, 128: LogicalKeyboardKey.f17, 129: LogicalKeyboardKey.f18, 130: LogicalKeyboardKey.f19, 131: LogicalKeyboardKey.f20, 132: LogicalKeyboardKey.f21, 133: LogicalKeyboardKey.f22, 134: LogicalKeyboardKey.f23, 135: LogicalKeyboardKey.f24, 144: LogicalKeyboardKey.numLock, 145: LogicalKeyboardKey.scrollLock, 146: LogicalKeyboardKey.numpadEqual, 160: LogicalKeyboardKey.shiftLeft, 161: LogicalKeyboardKey.shiftRight, 162: LogicalKeyboardKey.controlLeft, 163: LogicalKeyboardKey.controlRight, 164: LogicalKeyboardKey.altLeft, 165: LogicalKeyboardKey.altRight, 166: LogicalKeyboardKey.browserBack, 167: LogicalKeyboardKey.browserForward, 168: LogicalKeyboardKey.browserRefresh, 169: LogicalKeyboardKey.browserStop, 170: LogicalKeyboardKey.browserSearch, 171: LogicalKeyboardKey.browserFavorites, 172: LogicalKeyboardKey.browserHome, 173: LogicalKeyboardKey.audioVolumeMute, 174: LogicalKeyboardKey.audioVolumeDown, 175: LogicalKeyboardKey.audioVolumeUp, 178: LogicalKeyboardKey.mediaStop, 179: LogicalKeyboardKey.mediaPlayPause, 180: LogicalKeyboardKey.launchMail, 186: LogicalKeyboardKey.semicolon, 187: LogicalKeyboardKey.equal, 188: LogicalKeyboardKey.comma, 189: LogicalKeyboardKey.minus, 190: LogicalKeyboardKey.period, 191: LogicalKeyboardKey.slash, 192: LogicalKeyboardKey.backquote, 195: LogicalKeyboardKey.gameButton8, 196: LogicalKeyboardKey.gameButton9, 197: LogicalKeyboardKey.gameButton10, 198: LogicalKeyboardKey.gameButton11, 199: LogicalKeyboardKey.gameButton12, 200: LogicalKeyboardKey.gameButton13, 201: LogicalKeyboardKey.gameButton14, 202: LogicalKeyboardKey.gameButton15, 203: LogicalKeyboardKey.gameButton16, 219: LogicalKeyboardKey.bracketLeft, 220: LogicalKeyboardKey.backslash, 221: LogicalKeyboardKey.bracketRight, 222: LogicalKeyboardKey.quote, 246: LogicalKeyboardKey.attn, 250: LogicalKeyboardKey.play, }; /// Maps Windows KeyboardEvent codes to the matching [PhysicalKeyboardKey]. const Map kWindowsToPhysicalKey = { 1: PhysicalKeyboardKey.escape, 2: PhysicalKeyboardKey.digit1, 3: PhysicalKeyboardKey.digit2, 4: PhysicalKeyboardKey.digit3, 5: PhysicalKeyboardKey.digit4, 6: PhysicalKeyboardKey.digit5, 7: PhysicalKeyboardKey.digit6, 8: PhysicalKeyboardKey.digit7, 9: PhysicalKeyboardKey.digit8, 10: PhysicalKeyboardKey.digit9, 11: PhysicalKeyboardKey.digit0, 12: PhysicalKeyboardKey.minus, 13: PhysicalKeyboardKey.equal, 14: PhysicalKeyboardKey.backspace, 15: PhysicalKeyboardKey.tab, 16: PhysicalKeyboardKey.keyQ, 17: PhysicalKeyboardKey.keyW, 18: PhysicalKeyboardKey.keyE, 19: PhysicalKeyboardKey.keyR, 20: PhysicalKeyboardKey.keyT, 21: PhysicalKeyboardKey.keyY, 22: PhysicalKeyboardKey.keyU, 23: PhysicalKeyboardKey.keyI, 24: PhysicalKeyboardKey.keyO, 25: PhysicalKeyboardKey.keyP, 26: PhysicalKeyboardKey.bracketLeft, 27: PhysicalKeyboardKey.bracketRight, 28: PhysicalKeyboardKey.enter, 29: PhysicalKeyboardKey.controlLeft, 30: PhysicalKeyboardKey.keyA, 31: PhysicalKeyboardKey.keyS, 32: PhysicalKeyboardKey.keyD, 33: PhysicalKeyboardKey.keyF, 34: PhysicalKeyboardKey.keyG, 35: PhysicalKeyboardKey.keyH, 36: PhysicalKeyboardKey.keyJ, 37: PhysicalKeyboardKey.keyK, 38: PhysicalKeyboardKey.keyL, 39: PhysicalKeyboardKey.semicolon, 40: PhysicalKeyboardKey.quote, 41: PhysicalKeyboardKey.backquote, 42: PhysicalKeyboardKey.shiftLeft, 43: PhysicalKeyboardKey.backslash, 44: PhysicalKeyboardKey.keyZ, 45: PhysicalKeyboardKey.keyX, 46: PhysicalKeyboardKey.keyC, 47: PhysicalKeyboardKey.keyV, 48: PhysicalKeyboardKey.keyB, 49: PhysicalKeyboardKey.keyN, 50: PhysicalKeyboardKey.keyM, 51: PhysicalKeyboardKey.comma, 52: PhysicalKeyboardKey.period, 53: PhysicalKeyboardKey.slash, 54: PhysicalKeyboardKey.shiftRight, 55: PhysicalKeyboardKey.numpadMultiply, 56: PhysicalKeyboardKey.altLeft, 57: PhysicalKeyboardKey.space, 58: PhysicalKeyboardKey.capsLock, 59: PhysicalKeyboardKey.f1, 60: PhysicalKeyboardKey.f2, 61: PhysicalKeyboardKey.f3, 62: PhysicalKeyboardKey.f4, 63: PhysicalKeyboardKey.f5, 64: PhysicalKeyboardKey.f6, 65: PhysicalKeyboardKey.f7, 66: PhysicalKeyboardKey.f8, 67: PhysicalKeyboardKey.f9, 68: PhysicalKeyboardKey.f10, 69: PhysicalKeyboardKey.pause, 70: PhysicalKeyboardKey.scrollLock, 71: PhysicalKeyboardKey.numpad7, 72: PhysicalKeyboardKey.numpad8, 73: PhysicalKeyboardKey.numpad9, 74: PhysicalKeyboardKey.numpadSubtract, 75: PhysicalKeyboardKey.numpad4, 76: PhysicalKeyboardKey.numpad5, 77: PhysicalKeyboardKey.numpad6, 78: PhysicalKeyboardKey.numpadAdd, 79: PhysicalKeyboardKey.numpad1, 80: PhysicalKeyboardKey.numpad2, 81: PhysicalKeyboardKey.numpad3, 82: PhysicalKeyboardKey.numpad0, 83: PhysicalKeyboardKey.numpadDecimal, 86: PhysicalKeyboardKey.intlBackslash, 87: PhysicalKeyboardKey.f11, 88: PhysicalKeyboardKey.f12, 89: PhysicalKeyboardKey.numpadEqual, 100: PhysicalKeyboardKey.f13, 101: PhysicalKeyboardKey.f14, 102: PhysicalKeyboardKey.f15, 103: PhysicalKeyboardKey.f16, 104: PhysicalKeyboardKey.f17, 105: PhysicalKeyboardKey.f18, 106: PhysicalKeyboardKey.f19, 107: PhysicalKeyboardKey.f20, 108: PhysicalKeyboardKey.f21, 109: PhysicalKeyboardKey.f22, 110: PhysicalKeyboardKey.f23, 112: PhysicalKeyboardKey.kanaMode, 113: PhysicalKeyboardKey.lang2, 114: PhysicalKeyboardKey.lang1, 115: PhysicalKeyboardKey.intlRo, 118: PhysicalKeyboardKey.f24, 119: PhysicalKeyboardKey.lang4, 120: PhysicalKeyboardKey.lang3, 121: PhysicalKeyboardKey.convert, 123: PhysicalKeyboardKey.nonConvert, 125: PhysicalKeyboardKey.intlYen, 126: PhysicalKeyboardKey.numpadComma, 252: PhysicalKeyboardKey.usbPostFail, 255: PhysicalKeyboardKey.usbErrorRollOver, 57352: PhysicalKeyboardKey.undo, 57354: PhysicalKeyboardKey.paste, 57360: PhysicalKeyboardKey.mediaTrackPrevious, 57367: PhysicalKeyboardKey.cut, 57368: PhysicalKeyboardKey.copy, 57369: PhysicalKeyboardKey.mediaTrackNext, 57372: PhysicalKeyboardKey.numpadEnter, 57373: PhysicalKeyboardKey.controlRight, 57376: PhysicalKeyboardKey.audioVolumeMute, 57377: PhysicalKeyboardKey.launchApp2, 57378: PhysicalKeyboardKey.mediaPlayPause, 57380: PhysicalKeyboardKey.mediaStop, 57388: PhysicalKeyboardKey.eject, 57390: PhysicalKeyboardKey.audioVolumeDown, 57392: PhysicalKeyboardKey.audioVolumeUp, 57394: PhysicalKeyboardKey.browserHome, 57397: PhysicalKeyboardKey.numpadDivide, 57399: PhysicalKeyboardKey.printScreen, 57400: PhysicalKeyboardKey.altRight, 57403: PhysicalKeyboardKey.help, 57413: PhysicalKeyboardKey.numLock, 57415: PhysicalKeyboardKey.home, 57416: PhysicalKeyboardKey.arrowUp, 57417: PhysicalKeyboardKey.pageUp, 57419: PhysicalKeyboardKey.arrowLeft, 57421: PhysicalKeyboardKey.arrowRight, 57423: PhysicalKeyboardKey.end, 57424: PhysicalKeyboardKey.arrowDown, 57425: PhysicalKeyboardKey.pageDown, 57426: PhysicalKeyboardKey.insert, 57427: PhysicalKeyboardKey.delete, 57435: PhysicalKeyboardKey.metaLeft, 57436: PhysicalKeyboardKey.metaRight, 57437: PhysicalKeyboardKey.contextMenu, 57438: PhysicalKeyboardKey.power, 57439: PhysicalKeyboardKey.sleep, 57443: PhysicalKeyboardKey.wakeUp, 57445: PhysicalKeyboardKey.browserSearch, 57446: PhysicalKeyboardKey.browserFavorites, 57447: PhysicalKeyboardKey.browserRefresh, 57448: PhysicalKeyboardKey.browserStop, 57449: PhysicalKeyboardKey.browserForward, 57450: PhysicalKeyboardKey.browserBack, 57451: PhysicalKeyboardKey.launchApp1, 57452: PhysicalKeyboardKey.launchMail, 57453: PhysicalKeyboardKey.mediaSelect, }; /// A map of Windows KeyboardEvent codes which have printable representations, but appear /// on the number pad. Used to provide different key objects for keys like /// KEY_EQUALS and NUMPAD_EQUALS. const Map kWindowsNumPadMap = { 96: LogicalKeyboardKey.numpad0, 97: LogicalKeyboardKey.numpad1, 98: LogicalKeyboardKey.numpad2, 99: LogicalKeyboardKey.numpad3, 100: LogicalKeyboardKey.numpad4, 101: LogicalKeyboardKey.numpad5, 102: LogicalKeyboardKey.numpad6, 103: LogicalKeyboardKey.numpad7, 104: LogicalKeyboardKey.numpad8, 105: LogicalKeyboardKey.numpad9, 106: LogicalKeyboardKey.numpadMultiply, 107: LogicalKeyboardKey.numpadAdd, 108: LogicalKeyboardKey.numpadComma, 109: LogicalKeyboardKey.numpadSubtract, 110: LogicalKeyboardKey.numpadDecimal, 111: LogicalKeyboardKey.numpadDivide, 146: LogicalKeyboardKey.numpadEqual, };