widget/gonk/GonkKeyMapping.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

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 */

mercurial