Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
michael@0 | 1 | /* Copyright 2012 Mozilla Foundation and Mozilla contributors |
michael@0 | 2 | * |
michael@0 | 3 | * Licensed under the Apache License, Version 2.0 (the "License"); |
michael@0 | 4 | * you may not use this file except in compliance with the License. |
michael@0 | 5 | * You may obtain a copy of the License at |
michael@0 | 6 | * |
michael@0 | 7 | * http://www.apache.org/licenses/LICENSE-2.0 |
michael@0 | 8 | * |
michael@0 | 9 | * Unless required by applicable law or agreed to in writing, software |
michael@0 | 10 | * distributed under the License is distributed on an "AS IS" BASIS, |
michael@0 | 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
michael@0 | 12 | * See the License for the specific language governing permissions and |
michael@0 | 13 | * limitations under the License. |
michael@0 | 14 | */ |
michael@0 | 15 | |
michael@0 | 16 | #ifndef GONKKEYMAPPING_H |
michael@0 | 17 | #define GONKKEYMAPPING_H |
michael@0 | 18 | |
michael@0 | 19 | #include "libui/android_keycodes.h" |
michael@0 | 20 | #include "mozilla/EventForwards.h" |
michael@0 | 21 | |
michael@0 | 22 | namespace mozilla { |
michael@0 | 23 | namespace widget { |
michael@0 | 24 | |
michael@0 | 25 | /* See libui/KeycodeLabels.h for the mapping */ |
michael@0 | 26 | static const unsigned long kKeyMapping[] = { |
michael@0 | 27 | 0, |
michael@0 | 28 | 0, // SOFT_LEFT |
michael@0 | 29 | 0, // SOFT_RIGHT |
michael@0 | 30 | NS_VK_HOME, // HOME |
michael@0 | 31 | 0, // BACK |
michael@0 | 32 | 0, // CALL |
michael@0 | 33 | NS_VK_SLEEP, // ENDCALL |
michael@0 | 34 | NS_VK_0, |
michael@0 | 35 | NS_VK_1, |
michael@0 | 36 | NS_VK_2, |
michael@0 | 37 | NS_VK_3, |
michael@0 | 38 | NS_VK_4, |
michael@0 | 39 | NS_VK_5, |
michael@0 | 40 | NS_VK_6, |
michael@0 | 41 | NS_VK_7, |
michael@0 | 42 | NS_VK_8, |
michael@0 | 43 | NS_VK_9, |
michael@0 | 44 | NS_VK_ASTERISK, |
michael@0 | 45 | NS_VK_HASH, |
michael@0 | 46 | NS_VK_UP, |
michael@0 | 47 | NS_VK_DOWN, |
michael@0 | 48 | NS_VK_LEFT, |
michael@0 | 49 | NS_VK_RIGHT, |
michael@0 | 50 | NS_VK_SELECT, |
michael@0 | 51 | NS_VK_PAGE_UP, // VOLUME_UP |
michael@0 | 52 | NS_VK_PAGE_DOWN, // VOLUME_DOWN |
michael@0 | 53 | NS_VK_SLEEP, // POWER |
michael@0 | 54 | NS_VK_PRINTSCREEN, // CAMERA |
michael@0 | 55 | NS_VK_CLEAR, |
michael@0 | 56 | NS_VK_A, |
michael@0 | 57 | NS_VK_B, |
michael@0 | 58 | NS_VK_C, |
michael@0 | 59 | NS_VK_D, |
michael@0 | 60 | NS_VK_E, |
michael@0 | 61 | NS_VK_F, |
michael@0 | 62 | NS_VK_G, |
michael@0 | 63 | NS_VK_H, |
michael@0 | 64 | NS_VK_I, |
michael@0 | 65 | NS_VK_J, |
michael@0 | 66 | NS_VK_K, |
michael@0 | 67 | NS_VK_L, |
michael@0 | 68 | NS_VK_M, |
michael@0 | 69 | NS_VK_N, |
michael@0 | 70 | NS_VK_O, |
michael@0 | 71 | NS_VK_P, |
michael@0 | 72 | NS_VK_Q, |
michael@0 | 73 | NS_VK_R, |
michael@0 | 74 | NS_VK_S, |
michael@0 | 75 | NS_VK_T, |
michael@0 | 76 | NS_VK_U, |
michael@0 | 77 | NS_VK_V, |
michael@0 | 78 | NS_VK_W, |
michael@0 | 79 | NS_VK_X, |
michael@0 | 80 | NS_VK_Y, |
michael@0 | 81 | NS_VK_Z, |
michael@0 | 82 | NS_VK_COMMA, |
michael@0 | 83 | NS_VK_PERIOD, |
michael@0 | 84 | 0, |
michael@0 | 85 | 0, |
michael@0 | 86 | 0, |
michael@0 | 87 | 0, |
michael@0 | 88 | NS_VK_TAB, |
michael@0 | 89 | NS_VK_SPACE, |
michael@0 | 90 | NS_VK_META, // SYM |
michael@0 | 91 | 0, // EXPLORER |
michael@0 | 92 | 0, // ENVELOPE |
michael@0 | 93 | NS_VK_RETURN, // ENTER |
michael@0 | 94 | NS_VK_BACK, |
michael@0 | 95 | NS_VK_BACK_QUOTE, // GRAVE |
michael@0 | 96 | NS_VK_HYPHEN_MINUS, |
michael@0 | 97 | NS_VK_EQUALS, |
michael@0 | 98 | NS_VK_OPEN_BRACKET, |
michael@0 | 99 | NS_VK_CLOSE_BRACKET, |
michael@0 | 100 | NS_VK_BACK_SLASH, |
michael@0 | 101 | NS_VK_SEMICOLON, |
michael@0 | 102 | NS_VK_QUOTE, |
michael@0 | 103 | NS_VK_SLASH, |
michael@0 | 104 | NS_VK_AT, |
michael@0 | 105 | 0, // NUM |
michael@0 | 106 | NS_VK_F1, // HEADSETHOOK |
michael@0 | 107 | 0, // FOCUS |
michael@0 | 108 | NS_VK_PLUS, |
michael@0 | 109 | NS_VK_CONTEXT_MENU, |
michael@0 | 110 | 0, // NOTIFICATION |
michael@0 | 111 | NS_VK_F5, // SEARCH |
michael@0 | 112 | 0, // MEDIA_PLAY_PAUSE |
michael@0 | 113 | 0, // MEDIA_STOP |
michael@0 | 114 | 0, // MEDIA_NEXT |
michael@0 | 115 | 0, // MEDIA_PREVIOUS |
michael@0 | 116 | 0, // MEDIA_REWIND |
michael@0 | 117 | 0, // MEDIA_FAST_FORWARD |
michael@0 | 118 | 0, // MUTE |
michael@0 | 119 | 0, // PAGE_UP |
michael@0 | 120 | 0, // PAGE_DOWN |
michael@0 | 121 | 0, // PICTSYMBOLS |
michael@0 | 122 | 0, // SWITCH_CHARSET |
michael@0 | 123 | 0, // BUTTON_A |
michael@0 | 124 | 0, // BUTTON_B |
michael@0 | 125 | 0, // BUTTON_C |
michael@0 | 126 | 0, // BUTTON_X |
michael@0 | 127 | 0, // BUTTON_Y |
michael@0 | 128 | 0, // BUTTON_Z |
michael@0 | 129 | 0, // BUTTON_L1 |
michael@0 | 130 | 0, // BUTTON_R1 |
michael@0 | 131 | 0, // BUTTON_L2 |
michael@0 | 132 | 0, // BUTTON_R2 |
michael@0 | 133 | 0, // BUTTON_THUMBL |
michael@0 | 134 | 0, // BUTTON_THUMBR |
michael@0 | 135 | 0, // BUTTON_START |
michael@0 | 136 | 0, // BUTTON_SELECT |
michael@0 | 137 | 0, // BUTTON_MODE |
michael@0 | 138 | 0, // ESCAPE |
michael@0 | 139 | NS_VK_DELETE, |
michael@0 | 140 | 0, // CTRL_LEFT |
michael@0 | 141 | 0, // CTRL_RIGHT |
michael@0 | 142 | NS_VK_CAPS_LOCK, |
michael@0 | 143 | NS_VK_SCROLL_LOCK, |
michael@0 | 144 | 0, // META_LEFT |
michael@0 | 145 | 0, // META_RIGHT |
michael@0 | 146 | 0, // FUNCTION |
michael@0 | 147 | 0, // SYSRQ |
michael@0 | 148 | 0, // BREAK |
michael@0 | 149 | NS_VK_HOME, // MOVE_HOME |
michael@0 | 150 | NS_VK_END, |
michael@0 | 151 | NS_VK_INSERT, |
michael@0 | 152 | 0, // FORWARD |
michael@0 | 153 | 0, // MEDIA_PLAY |
michael@0 | 154 | 0, // MEDIA_PAUSE |
michael@0 | 155 | 0, // MEDIA_CLOSE |
michael@0 | 156 | 0, // MEDIA_EJECT |
michael@0 | 157 | 0, // MEDIA_RECORD |
michael@0 | 158 | NS_VK_F1, |
michael@0 | 159 | NS_VK_F2, |
michael@0 | 160 | NS_VK_F3, |
michael@0 | 161 | NS_VK_F4, |
michael@0 | 162 | NS_VK_F5, |
michael@0 | 163 | NS_VK_F6, |
michael@0 | 164 | NS_VK_F7, |
michael@0 | 165 | NS_VK_F8, |
michael@0 | 166 | NS_VK_F9, |
michael@0 | 167 | NS_VK_F10, |
michael@0 | 168 | NS_VK_F11, |
michael@0 | 169 | NS_VK_F12, |
michael@0 | 170 | NS_VK_NUM_LOCK, |
michael@0 | 171 | NS_VK_NUMPAD0, |
michael@0 | 172 | NS_VK_NUMPAD1, |
michael@0 | 173 | NS_VK_NUMPAD2, |
michael@0 | 174 | NS_VK_NUMPAD3, |
michael@0 | 175 | NS_VK_NUMPAD4, |
michael@0 | 176 | NS_VK_NUMPAD5, |
michael@0 | 177 | NS_VK_NUMPAD6, |
michael@0 | 178 | NS_VK_NUMPAD7, |
michael@0 | 179 | NS_VK_NUMPAD8, |
michael@0 | 180 | NS_VK_NUMPAD9, |
michael@0 | 181 | NS_VK_DIVIDE, |
michael@0 | 182 | NS_VK_MULTIPLY, |
michael@0 | 183 | NS_VK_SUBTRACT, |
michael@0 | 184 | NS_VK_ADD, |
michael@0 | 185 | NS_VK_PERIOD, |
michael@0 | 186 | NS_VK_COMMA, |
michael@0 | 187 | NS_VK_RETURN, |
michael@0 | 188 | NS_VK_EQUALS, |
michael@0 | 189 | // There are more but we don't map them |
michael@0 | 190 | }; |
michael@0 | 191 | |
michael@0 | 192 | static KeyNameIndex GetKeyNameIndex(int aKeyCode) |
michael@0 | 193 | { |
michael@0 | 194 | switch (aKeyCode) { |
michael@0 | 195 | #define NS_NATIVE_KEY_TO_DOM_KEY_NAME_INDEX(aNativeKey, aKeyNameIndex) \ |
michael@0 | 196 | case aNativeKey: return aKeyNameIndex; |
michael@0 | 197 | |
michael@0 | 198 | #include "NativeKeyToDOMKeyName.h" |
michael@0 | 199 | |
michael@0 | 200 | #undef NS_NATIVE_KEY_TO_DOM_KEY_NAME_INDEX |
michael@0 | 201 | |
michael@0 | 202 | case AKEYCODE_0: |
michael@0 | 203 | case AKEYCODE_1: |
michael@0 | 204 | case AKEYCODE_2: |
michael@0 | 205 | case AKEYCODE_3: |
michael@0 | 206 | case AKEYCODE_4: |
michael@0 | 207 | case AKEYCODE_5: |
michael@0 | 208 | case AKEYCODE_6: |
michael@0 | 209 | case AKEYCODE_7: |
michael@0 | 210 | case AKEYCODE_8: |
michael@0 | 211 | case AKEYCODE_9: |
michael@0 | 212 | case AKEYCODE_STAR: |
michael@0 | 213 | case AKEYCODE_POUND: |
michael@0 | 214 | case AKEYCODE_A: |
michael@0 | 215 | case AKEYCODE_B: |
michael@0 | 216 | case AKEYCODE_C: |
michael@0 | 217 | case AKEYCODE_D: |
michael@0 | 218 | case AKEYCODE_E: |
michael@0 | 219 | case AKEYCODE_F: |
michael@0 | 220 | case AKEYCODE_G: |
michael@0 | 221 | case AKEYCODE_H: |
michael@0 | 222 | case AKEYCODE_I: |
michael@0 | 223 | case AKEYCODE_J: |
michael@0 | 224 | case AKEYCODE_K: |
michael@0 | 225 | case AKEYCODE_L: |
michael@0 | 226 | case AKEYCODE_M: |
michael@0 | 227 | case AKEYCODE_N: |
michael@0 | 228 | case AKEYCODE_O: |
michael@0 | 229 | case AKEYCODE_P: |
michael@0 | 230 | case AKEYCODE_Q: |
michael@0 | 231 | case AKEYCODE_R: |
michael@0 | 232 | case AKEYCODE_S: |
michael@0 | 233 | case AKEYCODE_T: |
michael@0 | 234 | case AKEYCODE_U: |
michael@0 | 235 | case AKEYCODE_V: |
michael@0 | 236 | case AKEYCODE_W: |
michael@0 | 237 | case AKEYCODE_X: |
michael@0 | 238 | case AKEYCODE_Y: |
michael@0 | 239 | case AKEYCODE_Z: |
michael@0 | 240 | case AKEYCODE_COMMA: |
michael@0 | 241 | case AKEYCODE_PERIOD: |
michael@0 | 242 | case AKEYCODE_SPACE: |
michael@0 | 243 | case AKEYCODE_GRAVE: |
michael@0 | 244 | case AKEYCODE_MINUS: |
michael@0 | 245 | case AKEYCODE_EQUALS: |
michael@0 | 246 | case AKEYCODE_LEFT_BRACKET: |
michael@0 | 247 | case AKEYCODE_RIGHT_BRACKET: |
michael@0 | 248 | case AKEYCODE_BACKSLASH: |
michael@0 | 249 | case AKEYCODE_SEMICOLON: |
michael@0 | 250 | case AKEYCODE_APOSTROPHE: |
michael@0 | 251 | case AKEYCODE_SLASH: |
michael@0 | 252 | case AKEYCODE_AT: |
michael@0 | 253 | case AKEYCODE_PLUS: |
michael@0 | 254 | case AKEYCODE_NUMPAD_0: |
michael@0 | 255 | case AKEYCODE_NUMPAD_1: |
michael@0 | 256 | case AKEYCODE_NUMPAD_2: |
michael@0 | 257 | case AKEYCODE_NUMPAD_3: |
michael@0 | 258 | case AKEYCODE_NUMPAD_4: |
michael@0 | 259 | case AKEYCODE_NUMPAD_5: |
michael@0 | 260 | case AKEYCODE_NUMPAD_6: |
michael@0 | 261 | case AKEYCODE_NUMPAD_7: |
michael@0 | 262 | case AKEYCODE_NUMPAD_8: |
michael@0 | 263 | case AKEYCODE_NUMPAD_9: |
michael@0 | 264 | case AKEYCODE_NUMPAD_DIVIDE: |
michael@0 | 265 | case AKEYCODE_NUMPAD_MULTIPLY: |
michael@0 | 266 | case AKEYCODE_NUMPAD_SUBTRACT: |
michael@0 | 267 | case AKEYCODE_NUMPAD_ADD: |
michael@0 | 268 | case AKEYCODE_NUMPAD_DOT: |
michael@0 | 269 | case AKEYCODE_NUMPAD_COMMA: |
michael@0 | 270 | case AKEYCODE_NUMPAD_EQUALS: |
michael@0 | 271 | case AKEYCODE_NUMPAD_LEFT_PAREN: |
michael@0 | 272 | case AKEYCODE_NUMPAD_RIGHT_PAREN: |
michael@0 | 273 | return KEY_NAME_INDEX_USE_STRING; |
michael@0 | 274 | |
michael@0 | 275 | default: |
michael@0 | 276 | return KEY_NAME_INDEX_Unidentified; |
michael@0 | 277 | } |
michael@0 | 278 | } |
michael@0 | 279 | |
michael@0 | 280 | } // namespace widget |
michael@0 | 281 | } // namespace mozilla |
michael@0 | 282 | |
michael@0 | 283 | #endif /* GONKKEYMAPPING_H */ |