| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | |
| 2 // for details. All rights reserved. Use of this source code is governed by a | |
| 3 // BSD-style license that can be found in the LICENSE file. | |
| 4 | |
| 5 part of html; | |
| 6 | |
| 7 /** | |
| 8 * Defines the keycode values for keys that are returned by | |
| 9 * KeyboardEvent.keyCode. | |
| 10 * | |
| 11 * Important note: There is substantial divergence in how different browsers | |
| 12 * handle keycodes and their variants in different locales/keyboard layouts. We | |
| 13 * provide these constants to help make code processing keys more readable. | |
| 14 */ | |
| 15 abstract class KeyCode { | |
| 16 // These constant names were borrowed from Closure's Keycode enumeration | |
| 17 // class. | |
| 18 // http://closure-library.googlecode.com/svn/docs/closure_goog_events_keycodes
.js.source.html | |
| 19 static const int WIN_KEY_FF_LINUX = 0; | |
| 20 static const int MAC_ENTER = 3; | |
| 21 static const int BACKSPACE = 8; | |
| 22 static const int TAB = 9; | |
| 23 /** NUM_CENTER is also NUMLOCK for FF and Safari on Mac. */ | |
| 24 static const int NUM_CENTER = 12; | |
| 25 static const int ENTER = 13; | |
| 26 static const int SHIFT = 16; | |
| 27 static const int CTRL = 17; | |
| 28 static const int ALT = 18; | |
| 29 static const int PAUSE = 19; | |
| 30 static const int CAPS_LOCK = 20; | |
| 31 static const int ESC = 27; | |
| 32 static const int SPACE = 32; | |
| 33 static const int PAGE_UP = 33; | |
| 34 static const int PAGE_DOWN = 34; | |
| 35 static const int END = 35; | |
| 36 static const int HOME = 36; | |
| 37 static const int LEFT = 37; | |
| 38 static const int UP = 38; | |
| 39 static const int RIGHT = 39; | |
| 40 static const int DOWN = 40; | |
| 41 static const int NUM_NORTH_EAST = 33; | |
| 42 static const int NUM_SOUTH_EAST = 34; | |
| 43 static const int NUM_SOUTH_WEST = 35; | |
| 44 static const int NUM_NORTH_WEST = 36; | |
| 45 static const int NUM_WEST = 37; | |
| 46 static const int NUM_NORTH = 38; | |
| 47 static const int NUM_EAST = 39; | |
| 48 static const int NUM_SOUTH = 40; | |
| 49 static const int PRINT_SCREEN = 44; | |
| 50 static const int INSERT = 45; | |
| 51 static const int NUM_INSERT = 45; | |
| 52 static const int DELETE = 46; | |
| 53 static const int NUM_DELETE = 46; | |
| 54 static const int ZERO = 48; | |
| 55 static const int ONE = 49; | |
| 56 static const int TWO = 50; | |
| 57 static const int THREE = 51; | |
| 58 static const int FOUR = 52; | |
| 59 static const int FIVE = 53; | |
| 60 static const int SIX = 54; | |
| 61 static const int SEVEN = 55; | |
| 62 static const int EIGHT = 56; | |
| 63 static const int NINE = 57; | |
| 64 static const int FF_SEMICOLON = 59; | |
| 65 static const int FF_EQUALS = 61; | |
| 66 /** | |
| 67 * CAUTION: The question mark is for US-keyboard layouts. It varies | |
| 68 * for other locales and keyboard layouts. | |
| 69 */ | |
| 70 static const int QUESTION_MARK = 63; | |
| 71 static const int A = 65; | |
| 72 static const int B = 66; | |
| 73 static const int C = 67; | |
| 74 static const int D = 68; | |
| 75 static const int E = 69; | |
| 76 static const int F = 70; | |
| 77 static const int G = 71; | |
| 78 static const int H = 72; | |
| 79 static const int I = 73; | |
| 80 static const int J = 74; | |
| 81 static const int K = 75; | |
| 82 static const int L = 76; | |
| 83 static const int M = 77; | |
| 84 static const int N = 78; | |
| 85 static const int O = 79; | |
| 86 static const int P = 80; | |
| 87 static const int Q = 81; | |
| 88 static const int R = 82; | |
| 89 static const int S = 83; | |
| 90 static const int T = 84; | |
| 91 static const int U = 85; | |
| 92 static const int V = 86; | |
| 93 static const int W = 87; | |
| 94 static const int X = 88; | |
| 95 static const int Y = 89; | |
| 96 static const int Z = 90; | |
| 97 static const int META = 91; | |
| 98 static const int WIN_KEY_LEFT = 91; | |
| 99 static const int WIN_KEY_RIGHT = 92; | |
| 100 static const int CONTEXT_MENU = 93; | |
| 101 static const int NUM_ZERO = 96; | |
| 102 static const int NUM_ONE = 97; | |
| 103 static const int NUM_TWO = 98; | |
| 104 static const int NUM_THREE = 99; | |
| 105 static const int NUM_FOUR = 100; | |
| 106 static const int NUM_FIVE = 101; | |
| 107 static const int NUM_SIX = 102; | |
| 108 static const int NUM_SEVEN = 103; | |
| 109 static const int NUM_EIGHT = 104; | |
| 110 static const int NUM_NINE = 105; | |
| 111 static const int NUM_MULTIPLY = 106; | |
| 112 static const int NUM_PLUS = 107; | |
| 113 static const int NUM_MINUS = 109; | |
| 114 static const int NUM_PERIOD = 110; | |
| 115 static const int NUM_DIVISION = 111; | |
| 116 static const int F1 = 112; | |
| 117 static const int F2 = 113; | |
| 118 static const int F3 = 114; | |
| 119 static const int F4 = 115; | |
| 120 static const int F5 = 116; | |
| 121 static const int F6 = 117; | |
| 122 static const int F7 = 118; | |
| 123 static const int F8 = 119; | |
| 124 static const int F9 = 120; | |
| 125 static const int F10 = 121; | |
| 126 static const int F11 = 122; | |
| 127 static const int F12 = 123; | |
| 128 static const int NUMLOCK = 144; | |
| 129 static const int SCROLL_LOCK = 145; | |
| 130 | |
| 131 // OS-specific media keys like volume controls and browser controls. | |
| 132 static const int FIRST_MEDIA_KEY = 166; | |
| 133 static const int LAST_MEDIA_KEY = 183; | |
| 134 | |
| 135 /** | |
| 136 * CAUTION: This constant requires localization for other locales and keyboard | |
| 137 * layouts. | |
| 138 */ | |
| 139 static const int SEMICOLON = 186; | |
| 140 /** | |
| 141 * CAUTION: This constant requires localization for other locales and keyboard | |
| 142 * layouts. | |
| 143 */ | |
| 144 static const int DASH = 189; | |
| 145 /** | |
| 146 * CAUTION: This constant requires localization for other locales and keyboard | |
| 147 * layouts. | |
| 148 */ | |
| 149 static const int EQUALS = 187; | |
| 150 /** | |
| 151 * CAUTION: This constant requires localization for other locales and keyboard | |
| 152 * layouts. | |
| 153 */ | |
| 154 static const int COMMA = 188; | |
| 155 /** | |
| 156 * CAUTION: This constant requires localization for other locales and keyboard | |
| 157 * layouts. | |
| 158 */ | |
| 159 static const int PERIOD = 190; | |
| 160 /** | |
| 161 * CAUTION: This constant requires localization for other locales and keyboard | |
| 162 * layouts. | |
| 163 */ | |
| 164 static const int SLASH = 191; | |
| 165 /** | |
| 166 * CAUTION: This constant requires localization for other locales and keyboard | |
| 167 * layouts. | |
| 168 */ | |
| 169 static const int APOSTROPHE = 192; | |
| 170 /** | |
| 171 * CAUTION: This constant requires localization for other locales and keyboard | |
| 172 * layouts. | |
| 173 */ | |
| 174 static const int TILDE = 192; | |
| 175 /** | |
| 176 * CAUTION: This constant requires localization for other locales and keyboard | |
| 177 * layouts. | |
| 178 */ | |
| 179 static const int SINGLE_QUOTE = 222; | |
| 180 /** | |
| 181 * CAUTION: This constant requires localization for other locales and keyboard | |
| 182 * layouts. | |
| 183 */ | |
| 184 static const int OPEN_SQUARE_BRACKET = 219; | |
| 185 /** | |
| 186 * CAUTION: This constant requires localization for other locales and keyboard | |
| 187 * layouts. | |
| 188 */ | |
| 189 static const int BACKSLASH = 220; | |
| 190 /** | |
| 191 * CAUTION: This constant requires localization for other locales and keyboard | |
| 192 * layouts. | |
| 193 */ | |
| 194 static const int CLOSE_SQUARE_BRACKET = 221; | |
| 195 static const int WIN_KEY = 224; | |
| 196 static const int MAC_FF_META = 224; | |
| 197 static const int WIN_IME = 229; | |
| 198 | |
| 199 /** A sentinel value if the keycode could not be determined. */ | |
| 200 static const int UNKNOWN = -1; | |
| 201 | |
| 202 /** | |
| 203 * Returns true if the keyCode produces a (US keyboard) character. | |
| 204 * Note: This does not (yet) cover characters on non-US keyboards (Russian, | |
| 205 * Hebrew, etc.). | |
| 206 */ | |
| 207 static bool isCharacterKey(int keyCode) { | |
| 208 if ((keyCode >= ZERO && keyCode <= NINE) || | |
| 209 (keyCode >= NUM_ZERO && keyCode <= NUM_MULTIPLY) || | |
| 210 (keyCode >= A && keyCode <= Z)) { | |
| 211 return true; | |
| 212 } | |
| 213 | |
| 214 // Safari sends zero key code for non-latin characters. | |
| 215 if (_Device.isWebKit && keyCode == 0) { | |
| 216 return true; | |
| 217 } | |
| 218 | |
| 219 return (keyCode == SPACE || keyCode == QUESTION_MARK || keyCode == NUM_PLUS | |
| 220 || keyCode == NUM_MINUS || keyCode == NUM_PERIOD || | |
| 221 keyCode == NUM_DIVISION || keyCode == SEMICOLON || | |
| 222 keyCode == FF_SEMICOLON || keyCode == DASH || keyCode == EQUALS || | |
| 223 keyCode == FF_EQUALS || keyCode == COMMA || keyCode == PERIOD || | |
| 224 keyCode == SLASH || keyCode == APOSTROPHE || keyCode == SINGLE_QUOTE || | |
| 225 keyCode == OPEN_SQUARE_BRACKET || keyCode == BACKSLASH || | |
| 226 keyCode == CLOSE_SQUARE_BRACKET); | |
| 227 } | |
| 228 } | |
| OLD | NEW |