widget/shared/NativeKeyToDOMKeyName.h

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/widget/shared/NativeKeyToDOMKeyName.h	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,1152 @@
     1.4 +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     1.5 +/* vim: set ts=2 et sw=2 tw=80: */
     1.6 +/* This Source Code Form is subject to the terms of the Mozilla Public
     1.7 + * License, v. 2.0. If a copy of the MPL was not distributed with this file,
     1.8 + * You can obtain one at http://mozilla.org/MPL/2.0/. */
     1.9 +
    1.10 +/**
    1.11 + * This header file defines simple key mapping between native keycode value and
    1.12 + * DOM key name index.
    1.13 + * You must define NS_NATIVE_KEY_TO_DOM_KEY_NAME_INDEX macro before include
    1.14 + * this.
    1.15 + *
    1.16 + * It must have two arguments, (aNativeKey, aKeyNameIndex).
    1.17 + * aNativeKey is a native keycode value.
    1.18 + * aKeyNameIndex is the widget::KeyNameIndex value.
    1.19 + */
    1.20 +
    1.21 +// Windows (both Desktop and Metro)
    1.22 +#define KEY_MAP_WIN(aCPPKeyName, aNativeKey)
    1.23 +#define KEY_MAP_WIN_JPN(aCPPKeyName, aNativeKey)
    1.24 +#define KEY_MAP_WIN_KOR(aCPPKeyName, aNativeKey)
    1.25 +#define KEY_MAP_WIN_OTH(aCPPKeyName, aNativeKey)
    1.26 +// OS/2
    1.27 +#define KEY_MAP_OS2(aCPPKeyName, aNativeKey)
    1.28 +// Mac OS X
    1.29 +#define KEY_MAP_COCOA(aCPPKeyName, aNativeKey)
    1.30 +// GTK
    1.31 +#define KEY_MAP_GTK(aCPPKeyName, aNativeKey)
    1.32 +// Qt
    1.33 +#define KEY_MAP_QT(aCPPKeyName, aNativeKey)
    1.34 +// Android and Gonk
    1.35 +#define KEY_MAP_ANDROID(aCPPKeyName, aNativeKey)
    1.36 +
    1.37 +#if defined(XP_WIN)
    1.38 +// KEY_MAP_WIN() defines the mapping not depending on keyboard layout.
    1.39 +#undef KEY_MAP_WIN
    1.40 +#define KEY_MAP_WIN(aCPPKeyName, aNativeKey) \
    1.41 +  NS_NATIVE_KEY_TO_DOM_KEY_NAME_INDEX(aNativeKey, KEY_NAME_INDEX_##aCPPKeyName)
    1.42 +// KEY_MAP_WIN_JPN() defines the mapping which is valid only with Japanese
    1.43 +// keyboard layout.
    1.44 +#undef KEY_MAP_WIN_JPN
    1.45 +#define KEY_MAP_WIN_JPN(aCPPKeyName, aNativeKey) \
    1.46 +  NS_JAPANESE_NATIVE_KEY_TO_DOM_KEY_NAME_INDEX(aNativeKey, \
    1.47 +                                               KEY_NAME_INDEX_##aCPPKeyName)
    1.48 +// KEY_MAP_WIN_KOR() defines the mapping which is valid only with Korean
    1.49 +// keyboard layout.
    1.50 +#undef KEY_MAP_WIN_KOR
    1.51 +#define KEY_MAP_WIN_KOR(aCPPKeyName, aNativeKey) \
    1.52 +  NS_KOREAN_NATIVE_KEY_TO_DOM_KEY_NAME_INDEX(aNativeKey, \
    1.53 +                                             KEY_NAME_INDEX_##aCPPKeyName)
    1.54 +// KEY_MAP_WIN_OTH() defines the mapping which is valid with neither
    1.55 +// Japanese keyboard layout nor Korean keyboard layout.
    1.56 +#undef KEY_MAP_WIN_OTH
    1.57 +#define KEY_MAP_WIN_OTH(aCPPKeyName, aNativeKey) \
    1.58 +  NS_OTHER_NATIVE_KEY_TO_DOM_KEY_NAME_INDEX(aNativeKey, \
    1.59 +                                            KEY_NAME_INDEX_##aCPPKeyName)
    1.60 +#elif defined(XP_MACOSX)
    1.61 +#undef KEY_MAP_COCOA
    1.62 +#define KEY_MAP_COCOA(aCPPKeyName, aNativeKey) \
    1.63 +  NS_NATIVE_KEY_TO_DOM_KEY_NAME_INDEX(aNativeKey, KEY_NAME_INDEX_##aCPPKeyName)
    1.64 +#elif defined(MOZ_WIDGET_GTK)
    1.65 +#undef KEY_MAP_GTK
    1.66 +#define KEY_MAP_GTK(aCPPKeyName, aNativeKey) \
    1.67 +  NS_NATIVE_KEY_TO_DOM_KEY_NAME_INDEX(aNativeKey, KEY_NAME_INDEX_##aCPPKeyName)
    1.68 +#elif defined(MOZ_WIDGET_QT)
    1.69 +#undef KEY_MAP_QT
    1.70 +#define KEY_MAP_QT(aCPPKeyName, aNativeKey) \
    1.71 +  NS_NATIVE_KEY_TO_DOM_KEY_NAME_INDEX(aNativeKey, KEY_NAME_INDEX_##aCPPKeyName)
    1.72 +#elif defined(ANDROID)
    1.73 +#undef KEY_MAP_ANDROID
    1.74 +#define KEY_MAP_ANDROID(aCPPKeyName, aNativeKey) \
    1.75 +  NS_NATIVE_KEY_TO_DOM_KEY_NAME_INDEX(aNativeKey, KEY_NAME_INDEX_##aCPPKeyName)
    1.76 +#endif
    1.77 +
    1.78 +// Attn
    1.79 +KEY_MAP_WIN_OTH (Attn, VK_ATTN) // not valid with Japanese keyboard layout
    1.80 +KEY_MAP_GTK     (Attn, GDK_3270_Attn) // legacy IBM keyboard layout
    1.81 +
    1.82 +// Apps
    1.83 +KEY_MAP_ANDROID (Apps, AKEYCODE_APP_SWITCH)
    1.84 +
    1.85 +// Crsel
    1.86 +KEY_MAP_WIN     (Crsel, VK_CRSEL)
    1.87 +KEY_MAP_GTK     (Crsel, GDK_3270_CursorSelect) // legacy IBM keyboard layout
    1.88 +
    1.89 +// Exsel
    1.90 +KEY_MAP_WIN     (Exsel, VK_EXSEL)
    1.91 +KEY_MAP_GTK     (Exsel, GDK_3270_ExSelect) // legacy IBM keyboard layout
    1.92 +
    1.93 +// F1
    1.94 +KEY_MAP_WIN     (F1, VK_F1)
    1.95 +KEY_MAP_COCOA   (F1, kVK_F1)
    1.96 +KEY_MAP_GTK     (F1, GDK_F1)
    1.97 +KEY_MAP_GTK     (F1, GDK_KP_F1)
    1.98 +KEY_MAP_QT      (F1, Qt::Key_F1)
    1.99 +KEY_MAP_ANDROID (F1, AKEYCODE_F1)
   1.100 +
   1.101 +// F2
   1.102 +KEY_MAP_WIN     (F2, VK_F2)
   1.103 +KEY_MAP_COCOA   (F2, kVK_F2)
   1.104 +KEY_MAP_GTK     (F2, GDK_F2)
   1.105 +KEY_MAP_GTK     (F2, GDK_KP_F2)
   1.106 +KEY_MAP_QT      (F2, Qt::Key_F2)
   1.107 +KEY_MAP_ANDROID (F2, AKEYCODE_F2)
   1.108 +
   1.109 +// F3
   1.110 +KEY_MAP_WIN     (F3, VK_F3)
   1.111 +KEY_MAP_COCOA   (F3, kVK_F3)
   1.112 +KEY_MAP_GTK     (F3, GDK_F3)
   1.113 +KEY_MAP_GTK     (F3, GDK_KP_F3)
   1.114 +KEY_MAP_QT      (F3, Qt::Key_F3)
   1.115 +KEY_MAP_ANDROID (F3, AKEYCODE_F3)
   1.116 +
   1.117 +// F4
   1.118 +KEY_MAP_WIN     (F4, VK_F4)
   1.119 +KEY_MAP_COCOA   (F4, kVK_F4)
   1.120 +KEY_MAP_GTK     (F4, GDK_F4)
   1.121 +KEY_MAP_GTK     (F4, GDK_KP_F4)
   1.122 +KEY_MAP_QT      (F4, Qt::Key_F4)
   1.123 +KEY_MAP_ANDROID (F4, AKEYCODE_F4)
   1.124 +
   1.125 +// F5
   1.126 +KEY_MAP_WIN     (F5, VK_F5)
   1.127 +KEY_MAP_COCOA   (F5, kVK_F5)
   1.128 +KEY_MAP_GTK     (F5, GDK_F5)
   1.129 +KEY_MAP_QT      (F5, Qt::Key_F5)
   1.130 +KEY_MAP_ANDROID (F5, AKEYCODE_F5)
   1.131 +
   1.132 +// F6
   1.133 +KEY_MAP_WIN     (F6, VK_F6)
   1.134 +KEY_MAP_COCOA   (F6, kVK_F6)
   1.135 +KEY_MAP_GTK     (F6, GDK_F6)
   1.136 +KEY_MAP_QT      (F6, Qt::Key_F6)
   1.137 +KEY_MAP_ANDROID (F6, AKEYCODE_F6)
   1.138 +
   1.139 +// F7
   1.140 +KEY_MAP_WIN     (F7, VK_F7)
   1.141 +KEY_MAP_COCOA   (F7, kVK_F7)
   1.142 +KEY_MAP_GTK     (F7, GDK_F7)
   1.143 +KEY_MAP_QT      (F7, Qt::Key_F7)
   1.144 +KEY_MAP_ANDROID (F7, AKEYCODE_F7)
   1.145 +
   1.146 +// F8
   1.147 +KEY_MAP_WIN     (F8, VK_F8)
   1.148 +KEY_MAP_COCOA   (F8, kVK_F8)
   1.149 +KEY_MAP_GTK     (F8, GDK_F8)
   1.150 +KEY_MAP_QT      (F8, Qt::Key_F8)
   1.151 +KEY_MAP_ANDROID (F8, AKEYCODE_F8)
   1.152 +
   1.153 +// F9
   1.154 +KEY_MAP_WIN     (F9, VK_F9)
   1.155 +KEY_MAP_COCOA   (F9, kVK_F9)
   1.156 +KEY_MAP_GTK     (F9, GDK_F9)
   1.157 +KEY_MAP_QT      (F9, Qt::Key_F9)
   1.158 +KEY_MAP_ANDROID (F9, AKEYCODE_F9)
   1.159 +
   1.160 +// F10
   1.161 +KEY_MAP_WIN     (F10, VK_F10)
   1.162 +KEY_MAP_COCOA   (F10, kVK_F10)
   1.163 +KEY_MAP_GTK     (F10, GDK_F10)
   1.164 +KEY_MAP_QT      (F10, Qt::Key_F10)
   1.165 +KEY_MAP_ANDROID (F10, AKEYCODE_F10)
   1.166 +
   1.167 +// F11
   1.168 +KEY_MAP_WIN     (F11, VK_F11)
   1.169 +KEY_MAP_COCOA   (F11, kVK_F11)
   1.170 +KEY_MAP_GTK     (F11, GDK_F11 /* same as GDK_L1 */)
   1.171 +KEY_MAP_QT      (F11, Qt::Key_F11)
   1.172 +KEY_MAP_ANDROID (F11, AKEYCODE_F11)
   1.173 +
   1.174 +// F12
   1.175 +KEY_MAP_WIN     (F12, VK_F12)
   1.176 +KEY_MAP_COCOA   (F12, kVK_F12)
   1.177 +KEY_MAP_GTK     (F12, GDK_F12 /* same as GDK_L2 */)
   1.178 +KEY_MAP_QT      (F12, Qt::Key_F12)
   1.179 +KEY_MAP_ANDROID (F12, AKEYCODE_F12)
   1.180 +
   1.181 +// F13
   1.182 +KEY_MAP_WIN     (F13, VK_F13)
   1.183 +KEY_MAP_COCOA   (F13, kVK_F13)
   1.184 +KEY_MAP_GTK     (F13, GDK_F13 /* same as GDK_L3 */)
   1.185 +KEY_MAP_QT      (F13, Qt::Key_F13)
   1.186 +
   1.187 +// F14
   1.188 +KEY_MAP_WIN     (F14, VK_F14)
   1.189 +KEY_MAP_COCOA   (F14, kVK_F14)
   1.190 +KEY_MAP_GTK     (F14, GDK_F14 /* same as GDK_L4 */)
   1.191 +KEY_MAP_QT      (F14, Qt::Key_F14)
   1.192 +
   1.193 +// F15
   1.194 +KEY_MAP_WIN     (F15, VK_F15)
   1.195 +KEY_MAP_COCOA   (F15, kVK_F15)
   1.196 +KEY_MAP_GTK     (F15, GDK_F15 /* same as GDK_L5 */)
   1.197 +KEY_MAP_QT      (F15, Qt::Key_F15)
   1.198 +
   1.199 +// F16
   1.200 +KEY_MAP_WIN     (F16, VK_F16)
   1.201 +KEY_MAP_COCOA   (F16, kVK_F16)
   1.202 +KEY_MAP_GTK     (F16, GDK_F16 /* same as GDK_L6 */)
   1.203 +KEY_MAP_QT      (F16, Qt::Key_F16)
   1.204 +
   1.205 +// F17
   1.206 +KEY_MAP_WIN     (F17, VK_F17)
   1.207 +KEY_MAP_COCOA   (F17, kVK_F17)
   1.208 +KEY_MAP_GTK     (F17, GDK_F17 /* same as GDK_L7 */)
   1.209 +KEY_MAP_QT      (F17, Qt::Key_F17)
   1.210 +
   1.211 +// F18
   1.212 +KEY_MAP_WIN     (F18, VK_F18)
   1.213 +KEY_MAP_COCOA   (F18, kVK_F18)
   1.214 +KEY_MAP_GTK     (F18, GDK_F18 /* same as GDK_L8 */)
   1.215 +KEY_MAP_QT      (F18, Qt::Key_F18)
   1.216 +
   1.217 +// F19
   1.218 +KEY_MAP_WIN     (F19, VK_F19)
   1.219 +KEY_MAP_COCOA   (F19, kVK_F19)
   1.220 +KEY_MAP_GTK     (F19, GDK_F19 /* same as GDK_L9 */)
   1.221 +KEY_MAP_QT      (F19, Qt::Key_F19)
   1.222 +
   1.223 +// F20
   1.224 +KEY_MAP_WIN     (F20, VK_F20)
   1.225 +KEY_MAP_GTK     (F20, GDK_F20 /* same as GDK_L10 */)
   1.226 +KEY_MAP_QT      (F20, Qt::Key_F20)
   1.227 +
   1.228 +// F21
   1.229 +KEY_MAP_WIN     (F21, VK_F21)
   1.230 +KEY_MAP_GTK     (F21, GDK_F21 /* same as GDK_R1 */)
   1.231 +KEY_MAP_QT      (F21, Qt::Key_F21)
   1.232 +
   1.233 +// F22
   1.234 +KEY_MAP_WIN     (F22, VK_F22)
   1.235 +KEY_MAP_GTK     (F22, GDK_F22 /* same as GDK_R2 */)
   1.236 +KEY_MAP_QT      (F22, Qt::Key_F22)
   1.237 +
   1.238 +// F23
   1.239 +KEY_MAP_WIN     (F23, VK_F23)
   1.240 +KEY_MAP_GTK     (F23, GDK_F23 /* same as GDK_R3 */)
   1.241 +KEY_MAP_QT      (F23, Qt::Key_F23)
   1.242 +
   1.243 +// F24
   1.244 +KEY_MAP_WIN     (F24, VK_F24)
   1.245 +KEY_MAP_GTK     (F24, GDK_F24 /* same as GDK_R4 */)
   1.246 +KEY_MAP_QT      (F24, Qt::Key_F24)
   1.247 +
   1.248 +// F25
   1.249 +KEY_MAP_GTK     (F25, GDK_F25 /* same as GDK_R5 */)
   1.250 +KEY_MAP_QT      (F25, Qt::Key_F25)
   1.251 +
   1.252 +// F26
   1.253 +KEY_MAP_GTK     (F26, GDK_F26 /* same as GDK_R6 */)
   1.254 +KEY_MAP_QT      (F26, Qt::Key_F26)
   1.255 +
   1.256 +// F27
   1.257 +KEY_MAP_GTK     (F27, GDK_F27 /* same as GDK_R7 */)
   1.258 +KEY_MAP_QT      (F27, Qt::Key_F27)
   1.259 +
   1.260 +// F28
   1.261 +KEY_MAP_GTK     (F28, GDK_F28 /* same as GDK_R8 */)
   1.262 +KEY_MAP_QT      (F28, Qt::Key_F28)
   1.263 +
   1.264 +// F29
   1.265 +KEY_MAP_GTK     (F29, GDK_F29 /* same as GDK_R9 */)
   1.266 +KEY_MAP_QT      (F29, Qt::Key_F29)
   1.267 +
   1.268 +// F30
   1.269 +KEY_MAP_GTK     (F30, GDK_F30 /* same as GDK_R10 */)
   1.270 +KEY_MAP_QT      (F30, Qt::Key_F30)
   1.271 +
   1.272 +// F31
   1.273 +KEY_MAP_GTK     (F31, GDK_F31 /* same as GDK_R11 */)
   1.274 +KEY_MAP_QT      (F31, Qt::Key_F31)
   1.275 +
   1.276 +// F32
   1.277 +KEY_MAP_GTK     (F32, GDK_F32 /* same as GDK_R12 */)
   1.278 +KEY_MAP_QT      (F32, Qt::Key_F32)
   1.279 +
   1.280 +// F33
   1.281 +KEY_MAP_GTK     (F33, GDK_F33 /* same as GDK_R13 */)
   1.282 +KEY_MAP_QT      (F33, Qt::Key_F33)
   1.283 +
   1.284 +// F34
   1.285 +KEY_MAP_GTK     (F34, GDK_F34 /* same as GDK_R14 */)
   1.286 +KEY_MAP_QT      (F34, Qt::Key_F34)
   1.287 +
   1.288 +// F35
   1.289 +KEY_MAP_GTK     (F35, GDK_F35 /* same as GDK_R15 */)
   1.290 +KEY_MAP_QT      (F35, Qt::Key_F35)
   1.291 +
   1.292 +// LaunchApplication1
   1.293 +KEY_MAP_WIN     (LaunchApplication1, VK_LAUNCH_APP1)
   1.294 +KEY_MAP_GTK     (LaunchApplication1, GDK_Launch0)
   1.295 +KEY_MAP_QT      (LaunchApplication1, Qt::Key_Launch0)
   1.296 +KEY_MAP_ANDROID (LaunchApplication1, AKEYCODE_EXPLORER)
   1.297 +
   1.298 +// LaunchApplication2
   1.299 +KEY_MAP_WIN     (LaunchApplication2, VK_LAUNCH_APP2)
   1.300 +KEY_MAP_GTK     (LaunchApplication2, GDK_Launch1)
   1.301 +KEY_MAP_QT      (LaunchApplication2, Qt::Key_Launch1)
   1.302 +
   1.303 +// LaunchApplication3
   1.304 +KEY_MAP_GTK     (LaunchApplication3, GDK_Launch2)
   1.305 +KEY_MAP_QT      (LaunchApplication3, Qt::Key_Launch2)
   1.306 +
   1.307 +// LaunchApplication4
   1.308 +KEY_MAP_GTK     (LaunchApplication4, GDK_Launch3)
   1.309 +KEY_MAP_QT      (LaunchApplication4, Qt::Key_Launch3)
   1.310 +
   1.311 +// LaunchApplication5
   1.312 +KEY_MAP_GTK     (LaunchApplication5, GDK_Launch4)
   1.313 +KEY_MAP_QT      (LaunchApplication5, Qt::Key_Launch4)
   1.314 +
   1.315 +// LaunchApplication6
   1.316 +KEY_MAP_GTK     (LaunchApplication6, GDK_Launch5)
   1.317 +KEY_MAP_QT      (LaunchApplication6, Qt::Key_Launch5)
   1.318 +
   1.319 +// LaunchApplication7
   1.320 +KEY_MAP_GTK     (LaunchApplication7, GDK_Launch6)
   1.321 +KEY_MAP_QT      (LaunchApplication7, Qt::Key_Launch6)
   1.322 +
   1.323 +// LaunchApplication8
   1.324 +KEY_MAP_GTK     (LaunchApplication8, GDK_Launch7)
   1.325 +KEY_MAP_QT      (LaunchApplication8, Qt::Key_Launch7)
   1.326 +
   1.327 +// LaunchApplication9
   1.328 +KEY_MAP_GTK     (LaunchApplication9, GDK_Launch8)
   1.329 +KEY_MAP_QT      (LaunchApplication9, Qt::Key_Launch8)
   1.330 +
   1.331 +// LaunchApplication10
   1.332 +KEY_MAP_GTK     (LaunchApplication10, GDK_Launch9)
   1.333 +KEY_MAP_QT      (LaunchApplication10, Qt::Key_Launch9)
   1.334 +
   1.335 +// LaunchApplication11
   1.336 +KEY_MAP_GTK     (LaunchApplication11, GDK_LaunchA)
   1.337 +KEY_MAP_QT      (LaunchApplication11, Qt::Key_LaunchA)
   1.338 +
   1.339 +// LaunchApplication12
   1.340 +KEY_MAP_GTK     (LaunchApplication12, GDK_LaunchB)
   1.341 +KEY_MAP_QT      (LaunchApplication12, Qt::Key_LaunchB)
   1.342 +
   1.343 +// LaunchApplication13
   1.344 +KEY_MAP_GTK     (LaunchApplication13, GDK_LaunchC)
   1.345 +KEY_MAP_QT      (LaunchApplication13, Qt::Key_LaunchC)
   1.346 +
   1.347 +// LaunchApplication14
   1.348 +KEY_MAP_GTK     (LaunchApplication14, GDK_LaunchD)
   1.349 +KEY_MAP_QT      (LaunchApplication14, Qt::Key_LaunchD)
   1.350 +
   1.351 +// LaunchApplication15
   1.352 +KEY_MAP_GTK     (LaunchApplication15, GDK_LaunchE)
   1.353 +KEY_MAP_QT      (LaunchApplication15, Qt::Key_LaunchE)
   1.354 +
   1.355 +// LaunchApplication16
   1.356 +KEY_MAP_GTK     (LaunchApplication16, GDK_LaunchF)
   1.357 +KEY_MAP_QT      (LaunchApplication16, Qt::Key_LaunchF)
   1.358 +
   1.359 +// LaunchApplication17
   1.360 +KEY_MAP_QT      (LaunchApplication17, Qt::Key_LaunchG)
   1.361 +
   1.362 +// LaunchApplication18
   1.363 +KEY_MAP_QT      (LaunchApplication18, Qt::Key_LaunchH)
   1.364 +
   1.365 +// LaunchMail
   1.366 +KEY_MAP_WIN     (LaunchMail, VK_LAUNCH_MAIL)
   1.367 +KEY_MAP_GTK     (LaunchMail, GDK_Mail)
   1.368 +KEY_MAP_QT      (LaunchMail, Qt::Key_LaunchMail)
   1.369 +KEY_MAP_ANDROID (LaunchMail, AKEYCODE_ENVELOPE)
   1.370 +
   1.371 +// List
   1.372 +
   1.373 +// Props
   1.374 +
   1.375 +// Soft1
   1.376 +
   1.377 +// Soft2
   1.378 +
   1.379 +// Soft3
   1.380 +
   1.381 +// Soft4
   1.382 +
   1.383 +// Accept
   1.384 +KEY_MAP_WIN     (Accept, VK_ACCEPT)
   1.385 +KEY_MAP_ANDROID (Accept, AKEYCODE_DPAD_CENTER)
   1.386 +
   1.387 +// Again
   1.388 +
   1.389 +// Enter
   1.390 +KEY_MAP_WIN     (Enter, VK_RETURN)
   1.391 +KEY_MAP_COCOA   (Enter, kVK_Return)
   1.392 +KEY_MAP_COCOA   (Enter, kVK_ANSI_KeypadEnter)
   1.393 +KEY_MAP_COCOA   (Enter, kVK_Powerbook_KeypadEnter)
   1.394 +KEY_MAP_GTK     (Enter, GDK_Return)
   1.395 +KEY_MAP_GTK     (Enter, GDK_KP_Enter)
   1.396 +KEY_MAP_GTK     (Enter, GDK_ISO_Enter)
   1.397 +KEY_MAP_GTK     (Enter, GDK_3270_Enter)
   1.398 +KEY_MAP_QT      (Enter, Qt::Key_Return)
   1.399 +KEY_MAP_QT      (Enter, Qt::Key_Enter)
   1.400 +KEY_MAP_ANDROID (Enter, AKEYCODE_ENTER)
   1.401 +KEY_MAP_ANDROID (Enter, AKEYCODE_NUMPAD_ENTER)
   1.402 +
   1.403 +// Find
   1.404 +KEY_MAP_GTK     (Find, GDK_Find)
   1.405 +
   1.406 +// Help
   1.407 +KEY_MAP_WIN     (Help, VK_HELP)
   1.408 +KEY_MAP_COCOA   (Help, kVK_Help)
   1.409 +KEY_MAP_GTK     (Help, GDK_Help)
   1.410 +KEY_MAP_QT      (Help, Qt::Key_Help)
   1.411 +KEY_MAP_ANDROID (Help, AKEYCODE_ASSIST)
   1.412 +
   1.413 +// Info
   1.414 +KEY_MAP_ANDROID (Info, AKEYCODE_INFO)
   1.415 +
   1.416 +// Menu
   1.417 +KEY_MAP_WIN     (Menu, VK_APPS)
   1.418 +KEY_MAP_COCOA   (Menu, kVK_PC_ContextMenu)
   1.419 +KEY_MAP_GTK     (Menu, GDK_Menu)
   1.420 +KEY_MAP_QT      (Menu, Qt::Key_Menu)
   1.421 +KEY_MAP_ANDROID (Menu, AKEYCODE_MENU)
   1.422 +
   1.423 +// Pause
   1.424 +KEY_MAP_WIN     (Pause, VK_PAUSE)
   1.425 +KEY_MAP_GTK     (Pause, GDK_Pause)
   1.426 +// Break is typically mapped to Alt+Pause or Ctrl+Pause on GTK.
   1.427 +KEY_MAP_GTK     (Pause, GDK_Break)
   1.428 +KEY_MAP_QT      (Pause, Qt::Key_Pause)
   1.429 +KEY_MAP_ANDROID (Pause, AKEYCODE_BREAK)
   1.430 +
   1.431 +// Play
   1.432 +KEY_MAP_WIN     (Play, VK_PLAY)
   1.433 +KEY_MAP_GTK     (Play, GDK_3270_Play) // legacy IBM keyboard layout
   1.434 +KEY_MAP_QT      (Play, Qt::Key_Play)
   1.435 +
   1.436 +// ScrollLock
   1.437 +KEY_MAP_WIN     (ScrollLock, VK_SCROLL)
   1.438 +KEY_MAP_GTK     (ScrollLock, GDK_Scroll_Lock)
   1.439 +KEY_MAP_QT      (ScrollLock, Qt::Key_ScrollLock)
   1.440 +KEY_MAP_ANDROID (ScrollLock, AKEYCODE_SCROLL_LOCK)
   1.441 +
   1.442 +// Execute
   1.443 +KEY_MAP_WIN     (Execute, VK_EXECUTE)
   1.444 +KEY_MAP_GTK     (Execute, GDK_Execute)
   1.445 +KEY_MAP_QT      (Execute, Qt::Key_Execute)
   1.446 +
   1.447 +// Cancel
   1.448 +KEY_MAP_WIN     (Cancel, VK_CANCEL)
   1.449 +KEY_MAP_GTK     (Cancel, GDK_Cancel)
   1.450 +KEY_MAP_QT      (Cancel, Qt::Key_Cancel)
   1.451 +
   1.452 +// Esc
   1.453 +KEY_MAP_WIN     (Esc, VK_ESCAPE)
   1.454 +KEY_MAP_COCOA   (Esc, kVK_Escape)
   1.455 +KEY_MAP_GTK     (Esc, GDK_Escape)
   1.456 +KEY_MAP_QT      (Esc, Qt::Key_Escape)
   1.457 +KEY_MAP_ANDROID (Esc, AKEYCODE_ESCAPE)
   1.458 +
   1.459 +// Exit
   1.460 +KEY_MAP_ANDROID (Exit, AKEYCODE_HOME)
   1.461 +
   1.462 +// Zoom
   1.463 +KEY_MAP_WIN     (Zoom, VK_ZOOM)
   1.464 +KEY_MAP_QT      (Zoom, Qt::Key_Zoom)
   1.465 +
   1.466 +// BrightnessDown
   1.467 +KEY_MAP_GTK     (BrightnessDown, GDK_MonBrightnessDown)
   1.468 +KEY_MAP_QT      (BrightnessDown, Qt::Key_MonBrightnessDown)
   1.469 +
   1.470 +// BrightnessUp
   1.471 +KEY_MAP_GTK     (BrightnessUp, GDK_MonBrightnessUp)
   1.472 +KEY_MAP_QT      (BrightnessUp, Qt::Key_MonBrightnessUp)
   1.473 +
   1.474 +// Camera
   1.475 +KEY_MAP_QT      (Camera, Qt::Key_Camera)
   1.476 +KEY_MAP_ANDROID (Camera, AKEYCODE_CAMERA)
   1.477 +
   1.478 +// Eject
   1.479 +KEY_MAP_GTK     (Eject, GDK_Eject)
   1.480 +KEY_MAP_QT      (Eject, Qt::Key_Eject)
   1.481 +KEY_MAP_ANDROID (Eject, AKEYCODE_MEDIA_EJECT)
   1.482 +
   1.483 +// Power
   1.484 +KEY_MAP_GTK     (Power, GDK_PowerOff)
   1.485 +KEY_MAP_QT      (Power, Qt::Key_PowerOff)
   1.486 +KEY_MAP_ANDROID (Power, AKEYCODE_POWER)
   1.487 +
   1.488 +// PrintScreen
   1.489 +KEY_MAP_WIN     (PrintScreen, VK_SNAPSHOT)
   1.490 +KEY_MAP_GTK     (PrintScreen, GDK_3270_PrintScreen)
   1.491 +KEY_MAP_GTK     (PrintScreen, GDK_Print)
   1.492 +KEY_MAP_GTK     (PrintScreen, GDK_Sys_Req)
   1.493 +KEY_MAP_QT      (PrintScreen, Qt::Key_Print)
   1.494 +KEY_MAP_QT      (PrintScreen, Qt::Key_SysReq)
   1.495 +KEY_MAP_ANDROID (PrintScreen, AKEYCODE_SYSRQ)
   1.496 +
   1.497 +// BrowserFavorites
   1.498 +KEY_MAP_WIN     (BrowserFavorites, VK_BROWSER_FAVORITES)
   1.499 +KEY_MAP_QT      (BrowserFavorites, Qt::Key_Favorites)
   1.500 +KEY_MAP_ANDROID (BrowserFavorites, AKEYCODE_BOOKMARK)
   1.501 +
   1.502 +// BrowserHome
   1.503 +KEY_MAP_WIN     (BrowserHome, VK_BROWSER_HOME)
   1.504 +KEY_MAP_GTK     (BrowserHome, GDK_HomePage)
   1.505 +KEY_MAP_QT      (BrowserHome, Qt::Key_HomePage)
   1.506 +
   1.507 +// BrowserRefresh
   1.508 +KEY_MAP_WIN     (BrowserRefresh, VK_BROWSER_REFRESH)
   1.509 +KEY_MAP_GTK     (BrowserRefresh, GDK_Refresh)
   1.510 +KEY_MAP_GTK     (BrowserRefresh, GDK_Reload)
   1.511 +KEY_MAP_QT      (BrowserRefresh, Qt::Key_Refresh)
   1.512 +KEY_MAP_QT      (BrowserRefresh, Qt::Key_Reload)
   1.513 +
   1.514 +// BrowserSearch
   1.515 +KEY_MAP_WIN     (BrowserSearch, VK_BROWSER_SEARCH)
   1.516 +KEY_MAP_GTK     (BrowserSearch, GDK_Search)
   1.517 +KEY_MAP_QT      (BrowserSearch, Qt::Key_Search)
   1.518 +KEY_MAP_ANDROID (BrowserSearch, AKEYCODE_SEARCH)
   1.519 +
   1.520 +// BrowserStop
   1.521 +KEY_MAP_WIN     (BrowserStop, VK_BROWSER_STOP)
   1.522 +KEY_MAP_GTK     (BrowserStop, GDK_Stop)
   1.523 +KEY_MAP_QT      (BrowserStop, Qt::Key_Stop)
   1.524 +
   1.525 +// BrowserBack
   1.526 +KEY_MAP_WIN     (BrowserBack, VK_BROWSER_BACK)
   1.527 +KEY_MAP_GTK     (BrowserBack, GDK_Back)
   1.528 +KEY_MAP_QT      (BrowserBack, Qt::Key_Back)
   1.529 +KEY_MAP_ANDROID (BrowserBack, AKEYCODE_BACK)
   1.530 +
   1.531 +// BrowserForward
   1.532 +KEY_MAP_WIN     (BrowserForward, VK_BROWSER_FORWARD)
   1.533 +KEY_MAP_GTK     (BrowserForward, GDK_Forward)
   1.534 +KEY_MAP_QT      (BrowserForward, Qt::Key_Forward)
   1.535 +KEY_MAP_ANDROID (BrowserForward, AKEYCODE_FORWARD)
   1.536 +
   1.537 +// Left
   1.538 +KEY_MAP_WIN     (Left, VK_LEFT)
   1.539 +KEY_MAP_COCOA   (Left, kVK_LeftArrow)
   1.540 +KEY_MAP_GTK     (Left, GDK_Left)
   1.541 +KEY_MAP_GTK     (Left, GDK_KP_Left)
   1.542 +KEY_MAP_QT      (Left, Qt::Key_Left)
   1.543 +KEY_MAP_ANDROID (Left, AKEYCODE_DPAD_LEFT)
   1.544 +
   1.545 +// PageDown
   1.546 +KEY_MAP_WIN     (PageDown, VK_NEXT)
   1.547 +KEY_MAP_COCOA   (PageDown, kVK_PageDown)
   1.548 +KEY_MAP_GTK     (PageDown, GDK_Page_Down /* same as GDK_Next */)
   1.549 +KEY_MAP_GTK     (PageDown, GDK_KP_Page_Down /* same as GDK_KP_Next */)
   1.550 +KEY_MAP_QT      (PageDown, Qt::Key_PageDown)
   1.551 +KEY_MAP_ANDROID (PageDown, AKEYCODE_PAGE_DOWN)
   1.552 +
   1.553 +// PageUp
   1.554 +KEY_MAP_WIN     (PageUp, VK_PRIOR)
   1.555 +KEY_MAP_COCOA   (PageUp, kVK_PageUp)
   1.556 +KEY_MAP_GTK     (PageUp, GDK_Page_Up /* same as GDK_Prior */)
   1.557 +KEY_MAP_GTK     (PageUp, GDK_KP_Page_Up /* same as GDK_KP_Prior */)
   1.558 +KEY_MAP_QT      (PageUp, Qt::Key_PageUp)
   1.559 +KEY_MAP_ANDROID (PageUp, AKEYCODE_PAGE_UP)
   1.560 +
   1.561 +// Right
   1.562 +KEY_MAP_WIN     (Right, VK_RIGHT)
   1.563 +KEY_MAP_COCOA   (Right, kVK_RightArrow)
   1.564 +KEY_MAP_GTK     (Right, GDK_Right)
   1.565 +KEY_MAP_GTK     (Right, GDK_KP_Right)
   1.566 +KEY_MAP_QT      (Right, Qt::Key_Right)
   1.567 +KEY_MAP_ANDROID (Right, AKEYCODE_DPAD_RIGHT)
   1.568 +
   1.569 +// Up
   1.570 +KEY_MAP_WIN     (Up, VK_UP)
   1.571 +KEY_MAP_COCOA   (Up, kVK_UpArrow)
   1.572 +KEY_MAP_GTK     (Up, GDK_Up)
   1.573 +KEY_MAP_GTK     (Up, GDK_KP_Up)
   1.574 +KEY_MAP_QT      (Up, Qt::Key_Up)
   1.575 +KEY_MAP_ANDROID (Up, AKEYCODE_DPAD_UP)
   1.576 +
   1.577 +// UpLeft
   1.578 +
   1.579 +// UpRight
   1.580 +
   1.581 +// Down
   1.582 +KEY_MAP_WIN     (Down, VK_DOWN)
   1.583 +KEY_MAP_COCOA   (Down, kVK_DownArrow)
   1.584 +KEY_MAP_GTK     (Down, GDK_Down)
   1.585 +KEY_MAP_GTK     (Down, GDK_KP_Down)
   1.586 +KEY_MAP_QT      (Down, Qt::Key_Down)
   1.587 +KEY_MAP_ANDROID (Down, AKEYCODE_DPAD_DOWN)
   1.588 +
   1.589 +// DownLeft
   1.590 +
   1.591 +// DownRight
   1.592 +
   1.593 +// Home
   1.594 +KEY_MAP_WIN     (Home, VK_HOME)
   1.595 +KEY_MAP_COCOA   (Home, kVK_Home)
   1.596 +KEY_MAP_GTK     (Home, GDK_Home)
   1.597 +KEY_MAP_GTK     (Home, GDK_KP_Home)
   1.598 +KEY_MAP_QT      (Home, Qt::Key_Home)
   1.599 +KEY_MAP_ANDROID (Home, AKEYCODE_MOVE_HOME)
   1.600 +
   1.601 +// End
   1.602 +KEY_MAP_WIN     (End, VK_END)
   1.603 +KEY_MAP_COCOA   (End, kVK_End)
   1.604 +KEY_MAP_GTK     (End, GDK_End)
   1.605 +KEY_MAP_GTK     (End, GDK_KP_End)
   1.606 +KEY_MAP_QT      (End, Qt::Key_End)
   1.607 +KEY_MAP_ANDROID (End, AKEYCODE_MOVE_END)
   1.608 +
   1.609 +// Select
   1.610 +KEY_MAP_WIN     (Select, VK_SELECT)
   1.611 +KEY_MAP_GTK     (Select, GDK_Select)
   1.612 +
   1.613 +// Tab
   1.614 +KEY_MAP_WIN     (Tab, VK_TAB)
   1.615 +KEY_MAP_COCOA   (Tab, kVK_Tab)
   1.616 +KEY_MAP_GTK     (Tab, GDK_Tab)
   1.617 +KEY_MAP_GTK     (Tab, GDK_KP_Tab)
   1.618 +KEY_MAP_QT      (Tab, Qt::Key_Tab)
   1.619 +KEY_MAP_ANDROID (Tab, AKEYCODE_TAB)
   1.620 +
   1.621 +// Backspace
   1.622 +KEY_MAP_WIN     (Backspace, VK_BACK)
   1.623 +KEY_MAP_COCOA   (Backspace, kVK_PC_Backspace)
   1.624 +KEY_MAP_GTK     (Backspace, GDK_BackSpace)
   1.625 +KEY_MAP_QT      (Backspace, Qt::Key_Backspace)
   1.626 +KEY_MAP_ANDROID (Backspace, AKEYCODE_DEL)
   1.627 +
   1.628 +// Clear
   1.629 +KEY_MAP_WIN     (Clear, VK_CLEAR)
   1.630 +KEY_MAP_WIN     (Clear, VK_OEM_CLEAR)
   1.631 +KEY_MAP_COCOA   (Clear, kVK_ANSI_KeypadClear)
   1.632 +KEY_MAP_GTK     (Clear, GDK_Clear)
   1.633 +KEY_MAP_QT      (Clear, Qt::Key_Clear)
   1.634 +KEY_MAP_ANDROID (Clear, AKEYCODE_CLEAR)
   1.635 +
   1.636 +// Copy
   1.637 +KEY_MAP_GTK     (Copy, GDK_Copy)
   1.638 +KEY_MAP_QT      (Copy, Qt::Key_Copy)
   1.639 +
   1.640 +// Cut
   1.641 +KEY_MAP_GTK     (Cut, GDK_Cut)
   1.642 +KEY_MAP_QT      (Cut, Qt::Key_Cut)
   1.643 +
   1.644 +// Del
   1.645 +KEY_MAP_WIN     (Del, VK_DELETE)
   1.646 +KEY_MAP_COCOA   (Del, kVK_PC_Delete)
   1.647 +KEY_MAP_GTK     (Del, GDK_Delete)
   1.648 +KEY_MAP_GTK     (Del, GDK_KP_Delete)
   1.649 +KEY_MAP_QT      (Del, Qt::Key_Delete)
   1.650 +KEY_MAP_ANDROID (Del, AKEYCODE_FORWARD_DEL)
   1.651 +
   1.652 +// EraseEof
   1.653 +KEY_MAP_WIN     (EraseEof, VK_EREOF)
   1.654 +KEY_MAP_GTK     (EraseEof, GDK_3270_EraseEOF) // legacy IBM keyboard layout
   1.655 +
   1.656 +// Insert
   1.657 +KEY_MAP_WIN     (Insert, VK_INSERT)
   1.658 +KEY_MAP_GTK     (Insert, GDK_Insert)
   1.659 +KEY_MAP_GTK     (Insert, GDK_KP_Insert)
   1.660 +KEY_MAP_QT      (Insert, Qt::Key_Insert)
   1.661 +KEY_MAP_ANDROID (Insert, AKEYCODE_INSERT)
   1.662 +
   1.663 +// Paste
   1.664 +KEY_MAP_GTK     (Paste, GDK_Paste)
   1.665 +KEY_MAP_QT      (Paste, Qt::Key_Paste)
   1.666 +
   1.667 +// Undo
   1.668 +KEY_MAP_GTK     (Undo, GDK_Undo)
   1.669 +
   1.670 +// DeadGrave
   1.671 +KEY_MAP_GTK     (DeadGrave, GDK_dead_grave)
   1.672 +KEY_MAP_QT      (DeadGrave, Qt::Key_Dead_Grave)
   1.673 +
   1.674 +// DeadAcute
   1.675 +KEY_MAP_GTK     (DeadAcute, GDK_dead_acute)
   1.676 +KEY_MAP_QT      (DeadAcute, Qt::Key_Dead_Acute)
   1.677 +
   1.678 +// DeadCircumflex
   1.679 +KEY_MAP_GTK     (DeadCircumflex, GDK_dead_circumflex)
   1.680 +KEY_MAP_QT      (DeadCircumflex, Qt::Key_Dead_Circumflex)
   1.681 +
   1.682 +// DeadTilde
   1.683 +KEY_MAP_GTK     (DeadTilde, GDK_dead_tilde)
   1.684 +KEY_MAP_QT      (DeadTilde, Qt::Key_Dead_Tilde)
   1.685 +
   1.686 +// DeadMacron
   1.687 +KEY_MAP_GTK     (DeadMacron, GDK_dead_macron)
   1.688 +KEY_MAP_QT      (DeadMacron, Qt::Key_Dead_Macron)
   1.689 +
   1.690 +// DeadBreve
   1.691 +KEY_MAP_GTK     (DeadBreve, GDK_dead_breve)
   1.692 +KEY_MAP_QT      (DeadBreve, Qt::Key_Dead_Breve)
   1.693 +
   1.694 +// DeadAboveDot
   1.695 +KEY_MAP_GTK     (DeadAboveDot, GDK_dead_abovedot)
   1.696 +KEY_MAP_QT      (DeadAboveDot, Qt::Key_Dead_Abovedot)
   1.697 +
   1.698 +// DeadUmlaut
   1.699 +KEY_MAP_GTK     (DeadUmlaut, GDK_dead_diaeresis)
   1.700 +KEY_MAP_QT      (DeadUmlaut, Qt::Key_Dead_Diaeresis)
   1.701 +
   1.702 +// DeadAboveRing
   1.703 +KEY_MAP_GTK     (DeadAboveRing, GDK_dead_abovering)
   1.704 +KEY_MAP_QT      (DeadAboveRing, Qt::Key_Dead_Abovering)
   1.705 +
   1.706 +// DeadDoubleacute
   1.707 +KEY_MAP_GTK     (DeadDoubleacute, GDK_dead_doubleacute)
   1.708 +KEY_MAP_QT      (DeadDoubleacute, Qt::Key_Dead_Doubleacute)
   1.709 +
   1.710 +// DeadCaron
   1.711 +KEY_MAP_GTK     (DeadCaron, GDK_dead_caron)
   1.712 +KEY_MAP_QT      (DeadCaron, Qt::Key_Dead_Caron)
   1.713 +
   1.714 +// DeadCedilla
   1.715 +KEY_MAP_GTK     (DeadCedilla, GDK_dead_cedilla)
   1.716 +KEY_MAP_QT      (DeadCedilla, Qt::Key_Dead_Cedilla)
   1.717 +
   1.718 +// DeadOgonek
   1.719 +KEY_MAP_GTK     (DeadOgonek, GDK_dead_ogonek)
   1.720 +KEY_MAP_QT      (DeadOgonek, Qt::Key_Dead_Ogonek)
   1.721 +
   1.722 +// DeadIota
   1.723 +KEY_MAP_GTK     (DeadIota, GDK_dead_iota)
   1.724 +KEY_MAP_QT      (DeadIota, Qt::Key_Dead_Iota)
   1.725 +
   1.726 +// DeadVoicedSound
   1.727 +KEY_MAP_GTK     (DeadVoicedSound, GDK_dead_voiced_sound)
   1.728 +KEY_MAP_QT      (DeadVoicedSound, Qt::Key_Dead_Voiced_Sound)
   1.729 +
   1.730 +// DeadSemivoicedSound
   1.731 +KEY_MAP_GTK     (DeadSemivoicedSound, GDK_dead_semivoiced_sound)
   1.732 +KEY_MAP_QT      (DeadSemivoicedSound, Qt::Key_Dead_Semivoiced_Sound)
   1.733 +
   1.734 +// Alphanumeric
   1.735 +KEY_MAP_WIN_JPN (Alphanumeric, VK_OEM_ATTN)
   1.736 +KEY_MAP_GTK     (Alphanumeric, GDK_Eisu_Shift)
   1.737 +KEY_MAP_GTK     (Alphanumeric, GDK_Eisu_toggle)
   1.738 +KEY_MAP_QT      (Alphanumeric, Qt::Key_Eisu_Shift)
   1.739 +KEY_MAP_QT      (Alphanumeric, Qt::Key_Eisu_toggle)
   1.740 +
   1.741 +// Alt
   1.742 +KEY_MAP_WIN     (Alt, VK_MENU)
   1.743 +KEY_MAP_WIN     (Alt, VK_LMENU)
   1.744 +KEY_MAP_WIN     (Alt, VK_RMENU)
   1.745 +KEY_MAP_COCOA   (Alt, kVK_Option)
   1.746 +KEY_MAP_COCOA   (Alt, kVK_RightOption)
   1.747 +KEY_MAP_GTK     (Alt, GDK_Alt_L)
   1.748 +KEY_MAP_GTK     (Alt, GDK_Alt_R)
   1.749 +KEY_MAP_QT      (Alt, Qt::Key_Alt)
   1.750 +KEY_MAP_ANDROID (Alt, AKEYCODE_ALT_LEFT)
   1.751 +KEY_MAP_ANDROID (Alt, AKEYCODE_ALT_RIGHT)
   1.752 +
   1.753 +// AltGraph
   1.754 +KEY_MAP_GTK     (AltGraph, GDK_Mode_switch /* same as GDK_kana_switch,
   1.755 +                                              GDK_ISO_Group_Shift and
   1.756 +                                              GDK_script_switch */)
   1.757 +// Let's treat both Level 3 shift and Level 5 shift as AltGr.
   1.758 +// And also, let's treat Latch key and Lock key as AltGr key too like
   1.759 +// GDK_Shift_Lock.
   1.760 +KEY_MAP_GTK     (AltGraph, GDK_ISO_Level3_Shift)
   1.761 +KEY_MAP_GTK     (AltGraph, GDK_ISO_Level3_Latch)
   1.762 +KEY_MAP_GTK     (AltGraph, GDK_ISO_Level3_Lock)
   1.763 +KEY_MAP_GTK     (AltGraph, GDK_ISO_Level5_Shift)
   1.764 +KEY_MAP_GTK     (AltGraph, GDK_ISO_Level5_Latch)
   1.765 +KEY_MAP_GTK     (AltGraph, GDK_ISO_Level5_Lock)
   1.766 +KEY_MAP_QT      (AltGraph, Qt::Key_AltGr)
   1.767 +KEY_MAP_QT      (AltGraph, Qt::Key_Mode_switch)
   1.768 +
   1.769 +// CapsLock
   1.770 +KEY_MAP_WIN     (CapsLock, VK_CAPITAL)
   1.771 +KEY_MAP_COCOA   (CapsLock, kVK_CapsLock)
   1.772 +KEY_MAP_GTK     (CapsLock, GDK_Caps_Lock)
   1.773 +KEY_MAP_QT      (CapsLock, Qt::Key_CapsLock)
   1.774 +KEY_MAP_ANDROID (CapsLock, AKEYCODE_CAPS_LOCK)
   1.775 +
   1.776 +// Control
   1.777 +KEY_MAP_WIN     (Control, VK_CONTROL)
   1.778 +KEY_MAP_WIN     (Control, VK_LCONTROL)
   1.779 +KEY_MAP_WIN     (Control, VK_RCONTROL)
   1.780 +KEY_MAP_COCOA   (Control, kVK_Control)
   1.781 +KEY_MAP_COCOA   (Control, kVK_RightControl)
   1.782 +KEY_MAP_GTK     (Control, GDK_Control_L)
   1.783 +KEY_MAP_GTK     (Control, GDK_Control_R)
   1.784 +KEY_MAP_QT      (Control, Qt::Key_Control)
   1.785 +KEY_MAP_ANDROID (Control, AKEYCODE_CTRL_LEFT)
   1.786 +KEY_MAP_ANDROID (Control, AKEYCODE_CTRL_RIGHT)
   1.787 +
   1.788 +// Fn
   1.789 +KEY_MAP_COCOA   (Fn, kVK_Function)
   1.790 +KEY_MAP_ANDROID (Fn, AKEYCODE_FUNCTION)
   1.791 +
   1.792 +// FnLock
   1.793 +
   1.794 +// Meta
   1.795 +KEY_MAP_COCOA   (Meta, kVK_Command)
   1.796 +KEY_MAP_COCOA   (Meta, kVK_RightCommand)
   1.797 +KEY_MAP_GTK     (Meta, GDK_Meta_L)
   1.798 +KEY_MAP_GTK     (Meta, GDK_Meta_R)
   1.799 +KEY_MAP_QT      (Meta, Qt::Key_Meta)
   1.800 +KEY_MAP_ANDROID (Meta, AKEYCODE_META_LEFT)
   1.801 +KEY_MAP_ANDROID (Meta, AKEYCODE_META_RIGHT)
   1.802 +
   1.803 +// Process
   1.804 +
   1.805 +// NumLock
   1.806 +KEY_MAP_WIN     (NumLock, VK_NUMLOCK)
   1.807 +KEY_MAP_GTK     (NumLock, GDK_Num_Lock)
   1.808 +KEY_MAP_QT      (NumLock, Qt::Key_NumLock)
   1.809 +KEY_MAP_ANDROID (NumLock, AKEYCODE_NUM_LOCK)
   1.810 +
   1.811 +// Shift
   1.812 +KEY_MAP_WIN     (Shift, VK_SHIFT)
   1.813 +KEY_MAP_WIN     (Shift, VK_LSHIFT)
   1.814 +KEY_MAP_WIN     (Shift, VK_RSHIFT)
   1.815 +KEY_MAP_COCOA   (Shift, kVK_Shift)
   1.816 +KEY_MAP_COCOA   (Shift, kVK_RightShift)
   1.817 +KEY_MAP_GTK     (Shift, GDK_Shift_L)
   1.818 +KEY_MAP_GTK     (Shift, GDK_Shift_R)
   1.819 +KEY_MAP_GTK     (Shift, GDK_Shift_Lock) // Let's treat as Shift key (bug 769159)
   1.820 +KEY_MAP_QT      (Shift, Qt::Key_Shift)
   1.821 +KEY_MAP_ANDROID (Shift, AKEYCODE_SHIFT_LEFT)
   1.822 +KEY_MAP_ANDROID (Shift, AKEYCODE_SHIFT_RIGHT)
   1.823 +
   1.824 +// SymbolLock
   1.825 +
   1.826 +// OS
   1.827 +KEY_MAP_WIN     (OS, VK_LWIN)
   1.828 +KEY_MAP_WIN     (OS, VK_RWIN)
   1.829 +KEY_MAP_GTK     (OS, GDK_Super_L)
   1.830 +KEY_MAP_GTK     (OS, GDK_Super_R)
   1.831 +KEY_MAP_GTK     (OS, GDK_Hyper_L)
   1.832 +KEY_MAP_GTK     (OS, GDK_Hyper_R)
   1.833 +KEY_MAP_QT      (OS, Qt::Key_Super_L)
   1.834 +KEY_MAP_QT      (OS, Qt::Key_Super_R)
   1.835 +KEY_MAP_QT      (OS, Qt::Key_Hyper_L)
   1.836 +KEY_MAP_QT      (OS, Qt::Key_Hyper_R)
   1.837 +
   1.838 +// Compose
   1.839 +KEY_MAP_GTK     (Compose, GDK_Multi_key) // "Multi Key" is "Compose key" on X
   1.840 +KEY_MAP_QT      (Compose, Qt::Key_Multi_key)
   1.841 +
   1.842 +// AllCandidates
   1.843 +KEY_MAP_GTK     (AllCandidates, GDK_MultipleCandidate) // OADG 109, Zen Koho
   1.844 +KEY_MAP_QT      (AllCandidates, Qt::Key_MultipleCandidate)
   1.845 +
   1.846 +// NextCandidate
   1.847 +
   1.848 +// PreviousCandidate
   1.849 +KEY_MAP_GTK     (PreviousCandidate, GDK_PreviousCandidate) // OADG 109, Mae Koho
   1.850 +KEY_MAP_QT      (PreviousCandidate, Qt::Key_PreviousCandidate)
   1.851 +
   1.852 +// CodeInput
   1.853 +KEY_MAP_GTK     (CodeInput, GDK_Codeinput) // OADG 109, Kanji Bangou
   1.854 +KEY_MAP_QT      (CodeInput, Qt::Key_Codeinput)
   1.855 +
   1.856 +// Convert
   1.857 +KEY_MAP_WIN     (Convert, VK_CONVERT)
   1.858 +KEY_MAP_GTK     (Convert, GDK_Henkan)
   1.859 +KEY_MAP_QT      (Convert, Qt::Key_Henkan)
   1.860 +KEY_MAP_ANDROID (Convert, AKEYCODE_HENKAN)
   1.861 +
   1.862 +// Nonconvert
   1.863 +KEY_MAP_WIN     (Nonconvert, VK_NONCONVERT)
   1.864 +KEY_MAP_GTK     (Nonconvert, GDK_Muhenkan)
   1.865 +KEY_MAP_QT      (Nonconvert, Qt::Key_Muhenkan)
   1.866 +KEY_MAP_ANDROID (Nonconvert, AKEYCODE_MUHENKAN)
   1.867 +
   1.868 +// FinalMode
   1.869 +KEY_MAP_WIN     (FinalMode, VK_FINAL)
   1.870 +
   1.871 +// FullWidth
   1.872 +KEY_MAP_WIN_JPN (FullWidth, VK_OEM_ENLW)
   1.873 +KEY_MAP_GTK     (FullWidth, GDK_Zenkaku)
   1.874 +KEY_MAP_QT      (FullWidth, Qt::Key_Zenkaku)
   1.875 +
   1.876 +// HalfWidth
   1.877 +KEY_MAP_WIN_JPN (HalfWidth, VK_OEM_AUTO)
   1.878 +KEY_MAP_GTK     (HalfWidth, GDK_Hankaku)
   1.879 +KEY_MAP_QT      (HalfWidth, Qt::Key_Hankaku)
   1.880 +
   1.881 +// ModeChange
   1.882 +KEY_MAP_WIN     (ModeChange, VK_MODECHANGE)
   1.883 +KEY_MAP_ANDROID (ModeChange, AKEYCODE_SWITCH_CHARSET)
   1.884 +
   1.885 +// RomanCharacters
   1.886 +KEY_MAP_WIN_JPN (RomanCharacters, VK_OEM_BACKTAB)
   1.887 +KEY_MAP_COCOA   (RomanCharacters, kVK_JIS_Eisu)
   1.888 +KEY_MAP_GTK     (RomanCharacters, GDK_Romaji)
   1.889 +KEY_MAP_QT      (RomanCharacters, Qt::Key_Romaji)
   1.890 +// Assuming that EISU key of Android is the Eisu key on Mac keyboard.
   1.891 +KEY_MAP_ANDROID (RomanCharacters, AKEYCODE_EISU)
   1.892 +
   1.893 +// HangulMode
   1.894 +KEY_MAP_WIN_KOR (HangulMode, VK_HANGUL /* same as VK_KANA */)
   1.895 +
   1.896 +// HanjaMode
   1.897 +KEY_MAP_WIN_KOR (HanjaMode, VK_HANJA /* same as VK_KANJI */)
   1.898 +
   1.899 +// JunjaMode
   1.900 +KEY_MAP_WIN     (JunjaMode, VK_JUNJA)
   1.901 +
   1.902 +// Hiragana
   1.903 +KEY_MAP_WIN_JPN (Hiragana, VK_OEM_COPY)
   1.904 +KEY_MAP_GTK     (Hiragana, GDK_Hiragana)
   1.905 +KEY_MAP_QT      (Hiragana, Qt::Key_Hiragana)
   1.906 +
   1.907 +// KanaMode
   1.908 +// VK_KANA is never used with modern Japanese keyboard, however, IE maps it to
   1.909 +// KanaMode, therefore, we should use same map for it.
   1.910 +KEY_MAP_WIN_JPN (KanaMode, VK_KANA /* same as VK_HANGUL */)
   1.911 +KEY_MAP_WIN_JPN (KanaMode, VK_ATTN)
   1.912 +KEY_MAP_GTK     (KanaMode, GDK_Kana_Lock)
   1.913 +KEY_MAP_GTK     (KanaMode, GDK_Kana_Shift)
   1.914 +KEY_MAP_QT      (KanaMode, Qt::Key_Kana_Lock)
   1.915 +KEY_MAP_QT      (KanaMode, Qt::Key_Kana_Shift)
   1.916 +
   1.917 +// KanjiMode
   1.918 +KEY_MAP_WIN_JPN (KanjiMode, VK_KANJI /* same as VK_HANJA */)
   1.919 +KEY_MAP_COCOA   (KanjiMode, kVK_JIS_Kana) // Kana key opens IME
   1.920 +KEY_MAP_GTK     (KanjiMode, GDK_Kanji) // Typically, Alt + Hankaku/Zenkaku key
   1.921 +KEY_MAP_QT      (KanjiMode, Qt::Key_Kanji)
   1.922 +// Assuming that KANA key of Android is the Kana key on Mac keyboard.
   1.923 +KEY_MAP_ANDROID (KanjiMode, AKEYCODE_KANA)
   1.924 +
   1.925 +// Katakana
   1.926 +KEY_MAP_WIN_JPN (Katakana, VK_OEM_FINISH)
   1.927 +KEY_MAP_GTK     (Katakana, GDK_Katakana)
   1.928 +KEY_MAP_QT      (Katakana, Qt::Key_Katakana)
   1.929 +
   1.930 +// AudioFaderFront
   1.931 +
   1.932 +// AudioFaderRear
   1.933 +
   1.934 +// AudioBalanceLeft
   1.935 +
   1.936 +// AudioBalanceRight
   1.937 +
   1.938 +// AudioBassBoostDown
   1.939 +KEY_MAP_QT      (AudioBassBoostDown, Qt::Key_BassDown)
   1.940 +
   1.941 +// AudioBassBoostUp
   1.942 +KEY_MAP_QT      (AudioBassBoostUp, Qt::Key_BassUp)
   1.943 +
   1.944 +// VolumeMute
   1.945 +KEY_MAP_WIN     (VolumeMute, VK_VOLUME_MUTE)
   1.946 +KEY_MAP_COCOA   (VolumeMute, kVK_Mute)
   1.947 +KEY_MAP_GTK     (VolumeMute, GDK_AudioMute)
   1.948 +KEY_MAP_QT      (VolumeMute, Qt::Key_VolumeMute)
   1.949 +KEY_MAP_ANDROID (VolumeMute, AKEYCODE_VOLUME_MUTE)
   1.950 +
   1.951 +// VolumeDown
   1.952 +KEY_MAP_WIN     (VolumeDown, VK_VOLUME_DOWN)
   1.953 +KEY_MAP_COCOA   (VolumeDown, kVK_VolumeDown)
   1.954 +KEY_MAP_GTK     (VolumeDown, GDK_AudioLowerVolume)
   1.955 +KEY_MAP_QT      (VolumeDown, Qt::Key_VolumeDown)
   1.956 +KEY_MAP_ANDROID (VolumeDown, AKEYCODE_VOLUME_DOWN)
   1.957 +
   1.958 +// VolumeUp
   1.959 +KEY_MAP_WIN     (VolumeUp, VK_VOLUME_UP)
   1.960 +KEY_MAP_COCOA   (VolumeUp, kVK_VolumeUp)
   1.961 +KEY_MAP_GTK     (VolumeUp, GDK_AudioRaiseVolume)
   1.962 +KEY_MAP_QT      (VolumeUp, Qt::Key_VolumeUp)
   1.963 +KEY_MAP_ANDROID (VolumeUp, AKEYCODE_VOLUME_UP)
   1.964 +
   1.965 +// MediaPause
   1.966 +KEY_MAP_GTK     (MediaPause, GDK_AudioPause)
   1.967 +KEY_MAP_QT      (MediaPause, Qt::Key_MediaPause)
   1.968 +KEY_MAP_ANDROID (MediaPause, AKEYCODE_MEDIA_PAUSE)
   1.969 +
   1.970 +// MediaPlay
   1.971 +KEY_MAP_GTK     (MediaPlay, GDK_AudioPlay)
   1.972 +KEY_MAP_QT      (MediaPlay, Qt::Key_MediaPlay)
   1.973 +KEY_MAP_ANDROID (MediaPlay, AKEYCODE_MEDIA_PLAY)
   1.974 +
   1.975 +// MediaStop
   1.976 +KEY_MAP_WIN     (MediaStop, VK_MEDIA_STOP)
   1.977 +KEY_MAP_GTK     (MediaStop, GDK_AudioStop)
   1.978 +KEY_MAP_QT      (MediaStop, Qt::Key_MediaStop)
   1.979 +KEY_MAP_ANDROID (MediaStop, AKEYCODE_MEDIA_STOP)
   1.980 +
   1.981 +// MediaNextTrack
   1.982 +KEY_MAP_WIN     (MediaNextTrack, VK_MEDIA_NEXT_TRACK)
   1.983 +KEY_MAP_GTK     (MediaNextTrack, GDK_AudioNext)
   1.984 +KEY_MAP_QT      (MediaNextTrack, Qt::Key_MediaNext)
   1.985 +KEY_MAP_ANDROID (MediaNextTrack, AKEYCODE_MEDIA_NEXT)
   1.986 +
   1.987 +// MediaPreviousTrack
   1.988 +KEY_MAP_WIN     (MediaPreviousTrack, VK_MEDIA_PREV_TRACK)
   1.989 +KEY_MAP_GTK     (MediaPreviousTrack, GDK_AudioPrev)
   1.990 +KEY_MAP_QT      (MediaPreviousTrack, Qt::Key_MediaPrevious)
   1.991 +KEY_MAP_ANDROID (MediaPreviousTrack, AKEYCODE_MEDIA_PREVIOUS)
   1.992 +
   1.993 +// MediaPlayPause
   1.994 +KEY_MAP_WIN     (MediaPlayPause, VK_MEDIA_PLAY_PAUSE)
   1.995 +KEY_MAP_QT      (MediaPlayPause, Qt::Key_MediaTogglePlayPause)
   1.996 +KEY_MAP_ANDROID (MediaPlayPause, AKEYCODE_MEDIA_PLAY_PAUSE)
   1.997 +
   1.998 +// MediaTrackSkip
   1.999 +
  1.1000 +// MediaTrackStart
  1.1001 +
  1.1002 +// MediaTrackEnd
  1.1003 +
  1.1004 +// SelectMedia
  1.1005 +KEY_MAP_WIN     (SelectMedia, VK_LAUNCH_MEDIA_SELECT)
  1.1006 +
  1.1007 +// Blue
  1.1008 +KEY_MAP_GTK     (Blue, GDK_Blue)
  1.1009 +KEY_MAP_ANDROID (Blue, AKEYCODE_PROG_BLUE)
  1.1010 +
  1.1011 +// Brown
  1.1012 +
  1.1013 +// ChannelDown
  1.1014 +KEY_MAP_ANDROID (ChannelDown, AKEYCODE_CHANNEL_DOWN)
  1.1015 +
  1.1016 +// ChannelUp
  1.1017 +KEY_MAP_ANDROID (ChannelUp, AKEYCODE_CHANNEL_UP)
  1.1018 +
  1.1019 +// ClearFavorite0
  1.1020 +
  1.1021 +// ClearFavorite1
  1.1022 +
  1.1023 +// ClearFavorite2
  1.1024 +
  1.1025 +// ClearFavorite3
  1.1026 +
  1.1027 +// Dimmer
  1.1028 +KEY_MAP_GTK     (Dimmer, GDK_BrightnessAdjust)
  1.1029 +KEY_MAP_QT      (Dimmer, Qt::Key_BrightnessAdjust)
  1.1030 +
  1.1031 +// DisplaySwap
  1.1032 +
  1.1033 +// FastFwd
  1.1034 +KEY_MAP_QT      (FastFwd, Qt::Key_AudioForward)
  1.1035 +KEY_MAP_ANDROID (FastFwd, AKEYCODE_MEDIA_FAST_FORWARD)
  1.1036 +
  1.1037 +// Green
  1.1038 +KEY_MAP_GTK     (Green, GDK_Green)
  1.1039 +KEY_MAP_ANDROID (Green, AKEYCODE_PROG_GREEN)
  1.1040 +
  1.1041 +// Grey
  1.1042 +
  1.1043 +// Guide
  1.1044 +KEY_MAP_ANDROID (Guide, AKEYCODE_GUIDE)
  1.1045 +
  1.1046 +// InstantReplay
  1.1047 +
  1.1048 +// MediaLast
  1.1049 +KEY_MAP_QT      (MediaLast, Qt::Key_MediaLast)
  1.1050 +
  1.1051 +// Link
  1.1052 +
  1.1053 +// Live
  1.1054 +KEY_MAP_ANDROID (Live, AKEYCODE_TV)
  1.1055 +
  1.1056 +// Lock
  1.1057 +
  1.1058 +// NextDay
  1.1059 +
  1.1060 +// NextFavoriteChannel
  1.1061 +
  1.1062 +// OnDemand
  1.1063 +
  1.1064 +// PinPDown
  1.1065 +
  1.1066 +// PinPMove
  1.1067 +
  1.1068 +// PinPToggle
  1.1069 +KEY_MAP_ANDROID (PinPToggle, AKEYCODE_WINDOW)
  1.1070 +
  1.1071 +// PinPUp
  1.1072 +
  1.1073 +// PlaySpeedDown
  1.1074 +
  1.1075 +// PlaySpeedReset
  1.1076 +
  1.1077 +// PlaySpeedUp
  1.1078 +
  1.1079 +// PrevDay
  1.1080 +
  1.1081 +// RandomToggle
  1.1082 +KEY_MAP_GTK     (RandomToggle, GDK_AudioRandomPlay)
  1.1083 +KEY_MAP_QT      (RandomToggle, Qt::Key_AudioRandomPlay)
  1.1084 +
  1.1085 +// RecallFavorite0
  1.1086 +
  1.1087 +// RecallFavorite1
  1.1088 +
  1.1089 +// RecallFavorite2
  1.1090 +
  1.1091 +// RecallFavorite3
  1.1092 +
  1.1093 +// MediaRecord
  1.1094 +KEY_MAP_GTK     (MediaRecord, GDK_AudioRecord)
  1.1095 +KEY_MAP_QT      (MediaRecord, Qt::Key_MediaRecord)
  1.1096 +KEY_MAP_ANDROID (MediaRecord, AKEYCODE_MEDIA_RECORD)
  1.1097 +
  1.1098 +// RecordSpeedNext
  1.1099 +
  1.1100 +// Red
  1.1101 +KEY_MAP_GTK     (Red, GDK_Red)
  1.1102 +KEY_MAP_ANDROID (Red, AKEYCODE_PROG_RED)
  1.1103 +
  1.1104 +// MediaRewind
  1.1105 +KEY_MAP_GTK     (MediaRewind, GDK_AudioRewind)
  1.1106 +KEY_MAP_QT      (MediaRewind, Qt::Key_AudioRewind)
  1.1107 +KEY_MAP_ANDROID (MediaRewind, AKEYCODE_MEDIA_REWIND)
  1.1108 +
  1.1109 +// RfBypass
  1.1110 +
  1.1111 +// ScanChannelsToggle
  1.1112 +
  1.1113 +// ScreenModeNext
  1.1114 +
  1.1115 +// Settings
  1.1116 +KEY_MAP_ANDROID (Settings, AKEYCODE_SETTINGS)
  1.1117 +
  1.1118 +// SplitScreenToggle
  1.1119 +
  1.1120 +// StoreFavorite0
  1.1121 +
  1.1122 +// StoreFavorite1
  1.1123 +
  1.1124 +// StoreFavorite2
  1.1125 +
  1.1126 +// StoreFavorite3
  1.1127 +
  1.1128 +// Subtitle
  1.1129 +KEY_MAP_GTK     (Subtitle, GDK_Subtitle)
  1.1130 +KEY_MAP_QT      (Subtitle, Qt::Key_Subtitle)
  1.1131 +KEY_MAP_ANDROID (Subtitle, AKEYCODE_CAPTIONS)
  1.1132 +
  1.1133 +// AudioSurroundModeNext
  1.1134 +
  1.1135 +// Teletext
  1.1136 +
  1.1137 +// VideoModeNext
  1.1138 +
  1.1139 +// DisplayWide
  1.1140 +
  1.1141 +// Wink
  1.1142 +
  1.1143 +// Yellow
  1.1144 +KEY_MAP_GTK     (Yellow, GDK_Yellow)
  1.1145 +KEY_MAP_ANDROID (Yellow, AKEYCODE_PROG_YELLOW)
  1.1146 +
  1.1147 +#undef KEY_MAP_WIN
  1.1148 +#undef KEY_MAP_WIN_JPN
  1.1149 +#undef KEY_MAP_WIN_KOR
  1.1150 +#undef KEY_MAP_WIN_OTH
  1.1151 +#undef KEY_MAP_OS2
  1.1152 +#undef KEY_MAP_COCOA
  1.1153 +#undef KEY_MAP_GTK
  1.1154 +#undef KEY_MAP_QT
  1.1155 +#undef KEY_MAP_ANDROID

mercurial