LCOV - code coverage report
Current view: top level - widget - NativeKeyToDOMCodeName.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 156 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 0 -
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* vim: set ts=2 et sw=2 tw=80: */
       3             : /* This Source Code Form is subject to the terms of the Mozilla Public
       4             :  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
       5             :  * You can obtain one at http://mozilla.org/MPL/2.0/. */
       6             : 
       7             : /**
       8             :  * This header file defines simple code mapping between native scancode or
       9             :  * something and DOM code name index.
      10             :  * You must define NS_NATIVE_KEY_TO_DOM_CODE_NAME_INDEX macro before include
      11             :  * this.
      12             :  *
      13             :  * It must have two arguments, (aNativeKey, aCodeNameIndex).
      14             :  * aNativeKey is a scancode value or something (depends on the platform).
      15             :  * aCodeNameIndex is the widget::CodeNameIndex value.
      16             :  */
      17             : 
      18             : // Windows
      19             : #define CODE_MAP_WIN(aCPPCodeName, aNativeKey)
      20             : // Mac OS X
      21             : #define CODE_MAP_MAC(aCPPCodeName, aNativeKey)
      22             : // GTK and Qt on Linux
      23             : #define CODE_MAP_X11(aCPPCodeName, aNativeKey)
      24             : // Android and Gonk
      25             : #define CODE_MAP_ANDROID(aCPPCodeName, aNativeKey)
      26             : 
      27             : #if defined(XP_WIN)
      28             : #undef CODE_MAP_WIN
      29             : // aNativeKey is scan code
      30             : #define CODE_MAP_WIN(aCPPCodeName, aNativeKey) \
      31             :   NS_NATIVE_KEY_TO_DOM_CODE_NAME_INDEX(aNativeKey, \
      32             :                                        CODE_NAME_INDEX_##aCPPCodeName)
      33             : #elif defined(XP_MACOSX)
      34             : #undef CODE_MAP_MAC
      35             : // aNativeKey is key code starting with kVK_.
      36             : #define CODE_MAP_MAC(aCPPCodeName, aNativeKey) \
      37             :   NS_NATIVE_KEY_TO_DOM_CODE_NAME_INDEX(aNativeKey, \
      38             :                                        CODE_NAME_INDEX_##aCPPCodeName)
      39             : #elif defined(MOZ_WIDGET_GTK)
      40             : #undef CODE_MAP_X11
      41             : // aNativeKey is hardware_keycode of GDKEvent or nativeScanCode of QKeyEvent.
      42             : #define CODE_MAP_X11(aCPPCodeName, aNativeKey) \
      43             :   NS_NATIVE_KEY_TO_DOM_CODE_NAME_INDEX(aNativeKey, \
      44             :                                        CODE_NAME_INDEX_##aCPPCodeName)
      45             : #elif defined(ANDROID)
      46             : #undef CODE_MAP_ANDROID
      47             : // aNativeKey is scan code
      48             : #define CODE_MAP_ANDROID(aCPPCodeName, aNativeKey) \
      49             :   NS_NATIVE_KEY_TO_DOM_CODE_NAME_INDEX(aNativeKey, \
      50             :                                        CODE_NAME_INDEX_##aCPPCodeName)
      51             : #endif
      52             : 
      53             : // Writing system keys
      54             : CODE_MAP_WIN(Backquote,                 0x0029)
      55             : CODE_MAP_MAC(Backquote,                 kVK_ANSI_Grave)
      56           0 : CODE_MAP_X11(Backquote,                 0x0031)
      57             : CODE_MAP_ANDROID(Backquote,             0x0029)
      58             : 
      59             : CODE_MAP_WIN(Backslash,                 0x002B)
      60             : CODE_MAP_MAC(Backslash,                 kVK_ANSI_Backslash)
      61           0 : CODE_MAP_X11(Backslash,                 0x0033)
      62             : CODE_MAP_ANDROID(Backslash,             0x002B)
      63             : 
      64             : CODE_MAP_WIN(Backspace,                 0x000E)
      65             : CODE_MAP_MAC(Backspace,                 kVK_Delete)
      66           0 : CODE_MAP_X11(Backspace,                 0x0016)
      67             : CODE_MAP_ANDROID(Backspace,             0x000E)
      68             : 
      69             : CODE_MAP_WIN(BracketLeft,               0x001A)
      70             : CODE_MAP_MAC(BracketLeft,               kVK_ANSI_LeftBracket)
      71           0 : CODE_MAP_X11(BracketLeft,               0x0022)
      72             : CODE_MAP_ANDROID(BracketLeft,           0x001A)
      73             : 
      74             : CODE_MAP_WIN(BracketRight,              0x001B)
      75             : CODE_MAP_MAC(BracketRight,              kVK_ANSI_RightBracket)
      76           0 : CODE_MAP_X11(BracketRight,              0x0023)
      77             : CODE_MAP_ANDROID(BracketRight,          0x001B)
      78             : 
      79             : CODE_MAP_WIN(Comma,                     0x0033)
      80             : CODE_MAP_MAC(Comma,                     kVK_ANSI_Comma)
      81           0 : CODE_MAP_X11(Comma,                     0x003B)
      82             : CODE_MAP_ANDROID(Comma,                 0x00033)
      83             : 
      84             : CODE_MAP_WIN(Digit0,                    0x000B)
      85             : CODE_MAP_MAC(Digit0,                    kVK_ANSI_0)
      86           0 : CODE_MAP_X11(Digit0,                    0x0013)
      87             : CODE_MAP_ANDROID(Digit0,                0x000B)
      88             : 
      89             : CODE_MAP_WIN(Digit1,                    0x0002)
      90             : CODE_MAP_MAC(Digit1,                    kVK_ANSI_1)
      91           0 : CODE_MAP_X11(Digit1,                    0x000A)
      92             : CODE_MAP_ANDROID(Digit1,                0x0002)
      93             : 
      94             : CODE_MAP_WIN(Digit2,                    0x0003)
      95             : CODE_MAP_MAC(Digit2,                    kVK_ANSI_2)
      96           0 : CODE_MAP_X11(Digit2,                    0x000B)
      97             : CODE_MAP_ANDROID(Digit2,                0x0003)
      98             : 
      99             : CODE_MAP_WIN(Digit3,                    0x0004)
     100             : CODE_MAP_MAC(Digit3,                    kVK_ANSI_3)
     101           0 : CODE_MAP_X11(Digit3,                    0x000C)
     102             : CODE_MAP_ANDROID(Digit3,                0x0004)
     103             : 
     104             : CODE_MAP_WIN(Digit4,                    0x0005)
     105             : CODE_MAP_MAC(Digit4,                    kVK_ANSI_4)
     106           0 : CODE_MAP_X11(Digit4,                    0x000D)
     107             : CODE_MAP_ANDROID(Digit4,                0x0005)
     108             : 
     109             : CODE_MAP_WIN(Digit5,                    0x0006)
     110             : CODE_MAP_MAC(Digit5,                    kVK_ANSI_5)
     111           0 : CODE_MAP_X11(Digit5,                    0x000E)
     112             : CODE_MAP_ANDROID(Digit5,                0x0006)
     113             : 
     114             : CODE_MAP_WIN(Digit6,                    0x0007)
     115             : CODE_MAP_MAC(Digit6,                    kVK_ANSI_6)
     116           0 : CODE_MAP_X11(Digit6,                    0x000F)
     117             : CODE_MAP_ANDROID(Digit6,                0x0007)
     118             : 
     119             : CODE_MAP_WIN(Digit7,                    0x0008)
     120             : CODE_MAP_MAC(Digit7,                    kVK_ANSI_7)
     121           0 : CODE_MAP_X11(Digit7,                    0x0010)
     122             : CODE_MAP_ANDROID(Digit7,                0x0008)
     123             : 
     124             : CODE_MAP_WIN(Digit8,                    0x0009)
     125             : CODE_MAP_MAC(Digit8,                    kVK_ANSI_8)
     126           0 : CODE_MAP_X11(Digit8,                    0x0011)
     127             : CODE_MAP_ANDROID(Digit8,                0x0009)
     128             : 
     129             : CODE_MAP_WIN(Digit9,                    0x000A)
     130             : CODE_MAP_MAC(Digit9,                    kVK_ANSI_9)
     131           0 : CODE_MAP_X11(Digit9,                    0x0012)
     132             : CODE_MAP_ANDROID(Digit9,                0x000A)
     133             : 
     134             : CODE_MAP_WIN(Equal,                     0x000D)
     135             : CODE_MAP_MAC(Equal,                     kVK_ANSI_Equal)
     136           0 : CODE_MAP_X11(Equal,                     0x0015)
     137             : CODE_MAP_ANDROID(Equal,                 0x000D)
     138             : 
     139             : CODE_MAP_WIN(IntlBackslash,             0x0056)
     140             : CODE_MAP_MAC(IntlBackslash,             kVK_ISO_Section)
     141           0 : CODE_MAP_X11(IntlBackslash,             0x005E)
     142             : CODE_MAP_ANDROID(IntlBackslash,         0x0056)
     143             : 
     144             : // Win: IntlHash's scan code is shared with "Backslash" key.
     145             : // Mac: IntlHash's virtual key code is shared with "Backslash" key.
     146             : // X11: IntlHash's scan code is shared with "Backslash" key.
     147             : // Android: IntlHash's scan code is shared with "Backslash" key.
     148             : 
     149             : CODE_MAP_WIN(IntlRo,                    0x0073)
     150             : CODE_MAP_MAC(IntlRo,                    kVK_JIS_Underscore)
     151           0 : CODE_MAP_X11(IntlRo,                    0x0061)
     152             : CODE_MAP_ANDROID(IntlRo,                0x0059)
     153             : 
     154             : CODE_MAP_WIN(IntlYen,                   0x007D)
     155             : CODE_MAP_MAC(IntlYen,                   kVK_JIS_Yen)
     156           0 : CODE_MAP_X11(IntlYen,                   0x0084)
     157             : CODE_MAP_ANDROID(IntlYen,               0x007C)
     158             : 
     159             : CODE_MAP_WIN(KeyA,                      0x001E)
     160             : CODE_MAP_MAC(KeyA,                      kVK_ANSI_A)
     161           0 : CODE_MAP_X11(KeyA,                      0x0026)
     162             : CODE_MAP_ANDROID(KeyA,                  0x001E)
     163             : 
     164             : CODE_MAP_WIN(KeyB,                      0x0030)
     165             : CODE_MAP_MAC(KeyB,                      kVK_ANSI_B)
     166           0 : CODE_MAP_X11(KeyB,                      0x0038)
     167             : CODE_MAP_ANDROID(KeyB,                  0x0030)
     168             : 
     169             : CODE_MAP_WIN(KeyC,                      0x002E)
     170             : CODE_MAP_MAC(KeyC,                      kVK_ANSI_C)
     171           0 : CODE_MAP_X11(KeyC,                      0x0036)
     172             : CODE_MAP_ANDROID(KeyC,                  0x002E)
     173             : 
     174             : CODE_MAP_WIN(KeyD,                      0x0020)
     175             : CODE_MAP_MAC(KeyD,                      kVK_ANSI_D)
     176           0 : CODE_MAP_X11(KeyD,                      0x0028)
     177             : CODE_MAP_ANDROID(KeyD,                  0x0020)
     178             : 
     179             : CODE_MAP_WIN(KeyE,                      0x0012)
     180             : CODE_MAP_MAC(KeyE,                      kVK_ANSI_E)
     181           0 : CODE_MAP_X11(KeyE,                      0x001A)
     182             : CODE_MAP_ANDROID(KeyE,                  0x0012)
     183             : 
     184             : CODE_MAP_WIN(KeyF,                      0x0021)
     185             : CODE_MAP_MAC(KeyF,                      kVK_ANSI_F)
     186           0 : CODE_MAP_X11(KeyF,                      0x0029)
     187             : CODE_MAP_ANDROID(KeyF,                  0x0021)
     188             : 
     189             : CODE_MAP_WIN(KeyG,                      0x0022)
     190             : CODE_MAP_MAC(KeyG,                      kVK_ANSI_G)
     191           0 : CODE_MAP_X11(KeyG,                      0x002A)
     192             : CODE_MAP_ANDROID(KeyG,                  0x0022)
     193             : 
     194             : CODE_MAP_WIN(KeyH,                      0x0023)
     195             : CODE_MAP_MAC(KeyH,                      kVK_ANSI_H)
     196           0 : CODE_MAP_X11(KeyH,                      0x002B)
     197             : CODE_MAP_ANDROID(KeyH,                  0x0023)
     198             : 
     199             : CODE_MAP_WIN(KeyI,                      0x0017)
     200             : CODE_MAP_MAC(KeyI,                      kVK_ANSI_I)
     201           0 : CODE_MAP_X11(KeyI,                      0x001F)
     202             : CODE_MAP_ANDROID(KeyI,                  0x0017)
     203             : 
     204             : CODE_MAP_WIN(KeyJ,                      0x0024)
     205             : CODE_MAP_MAC(KeyJ,                      kVK_ANSI_J)
     206           0 : CODE_MAP_X11(KeyJ,                      0x002C)
     207             : CODE_MAP_ANDROID(KeyJ,                  0x0024)
     208             : 
     209             : CODE_MAP_WIN(KeyK,                      0x0025)
     210             : CODE_MAP_MAC(KeyK,                      kVK_ANSI_K)
     211           0 : CODE_MAP_X11(KeyK,                      0x002D)
     212             : CODE_MAP_ANDROID(KeyK,                  0x0025)
     213             : 
     214             : CODE_MAP_WIN(KeyL,                      0x0026)
     215             : CODE_MAP_MAC(KeyL,                      kVK_ANSI_L)
     216           0 : CODE_MAP_X11(KeyL,                      0x002E)
     217             : CODE_MAP_ANDROID(KeyL,                  0x0026)
     218             : 
     219             : CODE_MAP_WIN(KeyM,                      0x0032)
     220             : CODE_MAP_MAC(KeyM,                      kVK_ANSI_M)
     221           0 : CODE_MAP_X11(KeyM,                      0x003A)
     222             : CODE_MAP_ANDROID(KeyM,                  0x0032)
     223             : 
     224             : CODE_MAP_WIN(KeyN,                      0x0031)
     225             : CODE_MAP_MAC(KeyN,                      kVK_ANSI_N)
     226           0 : CODE_MAP_X11(KeyN,                      0x0039)
     227             : CODE_MAP_ANDROID(KeyN,                  0x0031)
     228             : 
     229             : CODE_MAP_WIN(KeyO,                      0x0018)
     230             : CODE_MAP_MAC(KeyO,                      kVK_ANSI_O)
     231           0 : CODE_MAP_X11(KeyO,                      0x0020)
     232             : CODE_MAP_ANDROID(KeyO,                  0x0018)
     233             : 
     234             : CODE_MAP_WIN(KeyP,                      0x0019)
     235             : CODE_MAP_MAC(KeyP,                      kVK_ANSI_P)
     236           0 : CODE_MAP_X11(KeyP,                      0x0021)
     237             : CODE_MAP_ANDROID(KeyP,                  0x0019)
     238             : 
     239             : CODE_MAP_WIN(KeyQ,                      0x0010)
     240             : CODE_MAP_MAC(KeyQ,                      kVK_ANSI_Q)
     241           0 : CODE_MAP_X11(KeyQ,                      0x0018)
     242             : CODE_MAP_ANDROID(KeyQ,                  0x0010)
     243             : 
     244             : CODE_MAP_WIN(KeyR,                      0x0013)
     245             : CODE_MAP_MAC(KeyR,                      kVK_ANSI_R)
     246           0 : CODE_MAP_X11(KeyR,                      0x001B)
     247             : CODE_MAP_ANDROID(KeyR,                  0x0013)
     248             : 
     249             : CODE_MAP_WIN(KeyS,                      0x001F)
     250             : CODE_MAP_MAC(KeyS,                      kVK_ANSI_S)
     251           0 : CODE_MAP_X11(KeyS,                      0x0027)
     252             : CODE_MAP_ANDROID(KeyS,                  0x001F)
     253             : 
     254             : CODE_MAP_WIN(KeyT,                      0x0014)
     255             : CODE_MAP_MAC(KeyT,                      kVK_ANSI_T)
     256           0 : CODE_MAP_X11(KeyT,                      0x001C)
     257             : CODE_MAP_ANDROID(KeyT,                  0x0014)
     258             : 
     259             : CODE_MAP_WIN(KeyU,                      0x0016)
     260             : CODE_MAP_MAC(KeyU,                      kVK_ANSI_U)
     261           0 : CODE_MAP_X11(KeyU,                      0x001E)
     262             : CODE_MAP_ANDROID(KeyU,                  0x0016)
     263             : 
     264             : CODE_MAP_WIN(KeyV,                      0x002F)
     265             : CODE_MAP_MAC(KeyV,                      kVK_ANSI_V)
     266           0 : CODE_MAP_X11(KeyV,                      0x0037)
     267             : CODE_MAP_ANDROID(KeyV,                  0x002F)
     268             : 
     269             : CODE_MAP_WIN(KeyW,                      0x0011)
     270             : CODE_MAP_MAC(KeyW,                      kVK_ANSI_W)
     271           0 : CODE_MAP_X11(KeyW,                      0x0019)
     272             : CODE_MAP_ANDROID(KeyW,                  0x0011)
     273             : 
     274             : CODE_MAP_WIN(KeyX,                      0x002D)
     275             : CODE_MAP_MAC(KeyX,                      kVK_ANSI_X)
     276           0 : CODE_MAP_X11(KeyX,                      0x0035)
     277             : CODE_MAP_ANDROID(KeyX,                  0x002D)
     278             : 
     279             : CODE_MAP_WIN(KeyY,                      0x0015)
     280             : CODE_MAP_MAC(KeyY,                      kVK_ANSI_Y)
     281           0 : CODE_MAP_X11(KeyY,                      0x001D)
     282             : CODE_MAP_ANDROID(KeyY,                  0x0015)
     283             : 
     284             : CODE_MAP_WIN(KeyZ,                      0x002C)
     285             : CODE_MAP_MAC(KeyZ,                      kVK_ANSI_Z)
     286           0 : CODE_MAP_X11(KeyZ,                      0x0034)
     287             : CODE_MAP_ANDROID(KeyZ,                  0x002C)
     288             : 
     289             : CODE_MAP_WIN(Minus,                     0x000C)
     290             : CODE_MAP_MAC(Minus,                     kVK_ANSI_Minus)
     291           0 : CODE_MAP_X11(Minus,                     0x0014)
     292             : CODE_MAP_ANDROID(Minus,                 0x000C)
     293             : 
     294             : CODE_MAP_WIN(Period,                    0x0034)
     295             : CODE_MAP_MAC(Period,                    kVK_ANSI_Period)
     296           0 : CODE_MAP_X11(Period,                    0x003C)
     297             : CODE_MAP_ANDROID(Period,                0x0034)
     298             : 
     299             : CODE_MAP_WIN(Quote,                     0x0028)
     300             : CODE_MAP_MAC(Quote,                     kVK_ANSI_Quote)
     301           0 : CODE_MAP_X11(Quote,                     0x0030)
     302             : CODE_MAP_ANDROID(Quote,                 0x0028)
     303             : 
     304             : CODE_MAP_WIN(Semicolon,                 0x0027)
     305             : CODE_MAP_MAC(Semicolon,                 kVK_ANSI_Semicolon)
     306           0 : CODE_MAP_X11(Semicolon,                 0x002F)
     307             : CODE_MAP_ANDROID(Semicolon,             0x0027)
     308             : 
     309             : CODE_MAP_WIN(Slash,                     0x0035)
     310             : CODE_MAP_MAC(Slash,                     kVK_ANSI_Slash)
     311           0 : CODE_MAP_X11(Slash,                     0x003D)
     312             : CODE_MAP_ANDROID(Slash,                 0x0035)
     313             : 
     314             : // Functional keys
     315             : CODE_MAP_WIN(AltLeft,                   0x0038)
     316             : CODE_MAP_MAC(AltLeft,                   kVK_Option)
     317           0 : CODE_MAP_X11(AltLeft,                   0x0040)
     318             : CODE_MAP_ANDROID(AltLeft,               0x0038)
     319             : 
     320             : CODE_MAP_WIN(AltRight,                  0xE038)
     321             : CODE_MAP_MAC(AltRight,                  kVK_RightOption)
     322           0 : CODE_MAP_X11(AltRight,                  0x006C)
     323             : CODE_MAP_ANDROID(AltRight,              0x0064)
     324             : 
     325             : CODE_MAP_WIN(CapsLock,                  0x003A)
     326             : CODE_MAP_MAC(CapsLock,                  kVK_CapsLock)
     327           0 : CODE_MAP_X11(CapsLock,                  0x0042)
     328             : CODE_MAP_ANDROID(CapsLock,              0x003A)
     329             : 
     330             : CODE_MAP_WIN(ContextMenu,               0xE05D)
     331             : CODE_MAP_MAC(ContextMenu,               kVK_PC_ContextMenu)
     332           0 : CODE_MAP_X11(ContextMenu,               0x0087)
     333             : CODE_MAP_ANDROID(ContextMenu,           0x007F)
     334             : 
     335             : CODE_MAP_WIN(ControlLeft,               0x001D)
     336             : CODE_MAP_MAC(ControlLeft,               kVK_Control)
     337           0 : CODE_MAP_X11(ControlLeft,               0x0025)
     338             : CODE_MAP_ANDROID(ControlLeft,           0x001D)
     339             : 
     340             : CODE_MAP_WIN(ControlRight,              0xE01D)
     341             : CODE_MAP_MAC(ControlRight,              kVK_RightControl)
     342           0 : CODE_MAP_X11(ControlRight,              0x0069)
     343             : CODE_MAP_ANDROID(ControlRight,          0x0061)
     344             : 
     345             : CODE_MAP_WIN(Enter,                     0x001C)
     346             : CODE_MAP_MAC(Enter,                     kVK_Return)
     347           0 : CODE_MAP_X11(Enter,                     0x0024)
     348             : CODE_MAP_ANDROID(Enter,                 0x001C)
     349             : 
     350             : CODE_MAP_WIN(OSLeft,                    0xE05B)
     351             : CODE_MAP_MAC(OSLeft,                    kVK_Command)
     352           0 : CODE_MAP_X11(OSLeft,                    0x0085)
     353             : CODE_MAP_ANDROID(OSLeft,                0x007D)
     354             : 
     355             : CODE_MAP_WIN(OSRight,                   0xE05C)
     356             : CODE_MAP_MAC(OSRight,                   kVK_RightCommand)
     357           0 : CODE_MAP_X11(OSRight,                   0x0086)
     358             : CODE_MAP_ANDROID(OSRight,               0x007E)
     359             : 
     360             : CODE_MAP_WIN(ShiftLeft,                 0x002A)
     361             : CODE_MAP_MAC(ShiftLeft,                 kVK_Shift)
     362           0 : CODE_MAP_X11(ShiftLeft,                 0x0032)
     363             : CODE_MAP_ANDROID(ShiftLeft,             0x002A)
     364             : 
     365             : CODE_MAP_WIN(ShiftRight,                0x0036)
     366             : CODE_MAP_MAC(ShiftRight,                kVK_RightShift)
     367           0 : CODE_MAP_X11(ShiftRight,                0x003E)
     368             : CODE_MAP_ANDROID(ShiftRight,            0x0036)
     369             : 
     370             : CODE_MAP_WIN(Space,                     0x0039)
     371             : CODE_MAP_MAC(Space,                     kVK_Space)
     372           0 : CODE_MAP_X11(Space,                     0x0041)
     373             : CODE_MAP_ANDROID(Space,                 0x0039)
     374             : 
     375             : CODE_MAP_WIN(Tab,                       0x000F)
     376             : CODE_MAP_MAC(Tab,                       kVK_Tab)
     377           0 : CODE_MAP_X11(Tab,                       0x0017)
     378             : CODE_MAP_ANDROID(Tab,                   0x000F)
     379             : 
     380             : // IME keys
     381             : CODE_MAP_WIN(Convert,                   0x0079)
     382           0 : CODE_MAP_X11(Convert,                   0x0064)
     383             : CODE_MAP_ANDROID(Convert,               0x005C)
     384             : 
     385             : CODE_MAP_WIN(Lang1,                     0x0072) // for non-Korean layout
     386             : CODE_MAP_WIN(Lang1,                     0xE0F2) // for Korean layout
     387             : CODE_MAP_MAC(Lang1,                     kVK_JIS_Kana)
     388           0 : CODE_MAP_X11(Lang1,                     0x0082)
     389             : CODE_MAP_ANDROID(Lang1,                 0x007A)
     390             : 
     391             : CODE_MAP_WIN(Lang2,                     0x0071) // for non-Korean layout
     392             : CODE_MAP_WIN(Lang2,                     0xE0F1) // for Korean layout
     393             : CODE_MAP_MAC(Lang2,                     kVK_JIS_Eisu)
     394           0 : CODE_MAP_X11(Lang2,                     0x0083)
     395             : CODE_MAP_ANDROID(Lang2,                 0x007B)
     396             : 
     397             : CODE_MAP_WIN(KanaMode,                  0x0070)
     398           0 : CODE_MAP_X11(KanaMode,                  0x0065)
     399             : CODE_MAP_ANDROID(KanaMode,              0x005D)
     400             : 
     401             : CODE_MAP_WIN(NonConvert,                0x007B)
     402           0 : CODE_MAP_X11(NonConvert,                0x0066)
     403             : CODE_MAP_ANDROID(NonConvert,            0x005E)
     404             : 
     405             : // Control pad section
     406             : CODE_MAP_WIN(Delete,                    0xE053)
     407             : CODE_MAP_MAC(Delete,                    kVK_ForwardDelete)
     408           0 : CODE_MAP_X11(Delete,                    0x0077)
     409             : CODE_MAP_ANDROID(Delete,                0x006F)
     410             : 
     411             : CODE_MAP_WIN(End,                       0xE04F)
     412             : CODE_MAP_MAC(End,                       kVK_End)
     413           0 : CODE_MAP_X11(End,                       0x0073)
     414             : CODE_MAP_ANDROID(End,                   0x006B)
     415             : 
     416             : CODE_MAP_MAC(Help,                      kVK_Help) // Insert key on PC keyboard
     417           0 : CODE_MAP_X11(Help,                      0x0092) // Help key on Sun keyboard
     418             : CODE_MAP_ANDROID(Help,                  0x008A) // Help key on Sun keyboard
     419             : 
     420             : CODE_MAP_WIN(Home,                      0xE047)
     421             : CODE_MAP_MAC(Home,                      kVK_Home)
     422           0 : CODE_MAP_X11(Home,                      0x006E)
     423             : CODE_MAP_ANDROID(Home,                  0x0066)
     424             : 
     425             : CODE_MAP_WIN(Insert,                    0xE052)
     426           0 : CODE_MAP_X11(Insert,                    0x0076)
     427             : CODE_MAP_ANDROID(Insert,                0x006E)
     428             : 
     429             : CODE_MAP_WIN(PageDown,                  0xE051)
     430             : CODE_MAP_MAC(PageDown,                  kVK_PageDown)
     431           0 : CODE_MAP_X11(PageDown,                  0x0075)
     432             : CODE_MAP_ANDROID(PageDown,              0x006D)
     433             : 
     434             : CODE_MAP_WIN(PageUp,                    0xE049)
     435             : CODE_MAP_MAC(PageUp,                    kVK_PageUp)
     436           0 : CODE_MAP_X11(PageUp,                    0x0070)
     437             : CODE_MAP_ANDROID(PageUp,                0x0068)
     438             : 
     439             : // Arrow pad section
     440             : CODE_MAP_WIN(ArrowDown,                 0xE050)
     441             : CODE_MAP_MAC(ArrowDown,                 kVK_DownArrow)
     442           0 : CODE_MAP_X11(ArrowDown,                 0x0074)
     443             : CODE_MAP_ANDROID(ArrowDown,             0x006C)
     444             : 
     445             : CODE_MAP_WIN(ArrowLeft,                 0xE04B)
     446             : CODE_MAP_MAC(ArrowLeft,                 kVK_LeftArrow)
     447           0 : CODE_MAP_X11(ArrowLeft,                 0x0071)
     448             : CODE_MAP_ANDROID(ArrowLeft,             0x0069)
     449             : 
     450             : CODE_MAP_WIN(ArrowRight,                0xE04D)
     451             : CODE_MAP_MAC(ArrowRight,                kVK_RightArrow)
     452           0 : CODE_MAP_X11(ArrowRight,                0x0072)
     453             : CODE_MAP_ANDROID(ArrowRight,            0x006A)
     454             : 
     455             : CODE_MAP_WIN(ArrowUp,                   0xE048)
     456             : CODE_MAP_MAC(ArrowUp,                   kVK_UpArrow)
     457           0 : CODE_MAP_X11(ArrowUp,                   0x006F)
     458             : CODE_MAP_ANDROID(ArrowUp,               0x0067)
     459             : 
     460             : // Numpad section
     461             : CODE_MAP_WIN(NumLock,                   0xE045) // MSDN says 0x0045, though...
     462             : CODE_MAP_MAC(NumLock,                   kVK_ANSI_KeypadClear)
     463           0 : CODE_MAP_X11(NumLock,                   0x004D)
     464             : CODE_MAP_ANDROID(NumLock,               0x0045)
     465             : 
     466             : CODE_MAP_WIN(Numpad0,                   0x0052)
     467             : CODE_MAP_MAC(Numpad0,                   kVK_ANSI_Keypad0)
     468           0 : CODE_MAP_X11(Numpad0,                   0x005A)
     469             : CODE_MAP_ANDROID(Numpad0,               0x0052)
     470             : 
     471             : CODE_MAP_WIN(Numpad1,                   0x004F)
     472             : CODE_MAP_MAC(Numpad1,                   kVK_ANSI_Keypad1)
     473           0 : CODE_MAP_X11(Numpad1,                   0x0057)
     474             : CODE_MAP_ANDROID(Numpad1,               0x004F)
     475             : 
     476             : CODE_MAP_WIN(Numpad2,                   0x0050)
     477             : CODE_MAP_MAC(Numpad2,                   kVK_ANSI_Keypad2)
     478           0 : CODE_MAP_X11(Numpad2,                   0x0058)
     479             : CODE_MAP_ANDROID(Numpad2,               0x0050)
     480             : 
     481             : CODE_MAP_WIN(Numpad3,                   0x0051)
     482             : CODE_MAP_MAC(Numpad3,                   kVK_ANSI_Keypad3)
     483           0 : CODE_MAP_X11(Numpad3,                   0x0059)
     484             : CODE_MAP_ANDROID(Numpad3,               0x0051)
     485             : 
     486             : CODE_MAP_WIN(Numpad4,                   0x004B)
     487             : CODE_MAP_MAC(Numpad4,                   kVK_ANSI_Keypad4)
     488           0 : CODE_MAP_X11(Numpad4,                   0x0053)
     489             : CODE_MAP_ANDROID(Numpad4,               0x004B)
     490             : 
     491             : CODE_MAP_WIN(Numpad5,                   0x004C)
     492             : CODE_MAP_MAC(Numpad5,                   kVK_ANSI_Keypad5)
     493           0 : CODE_MAP_X11(Numpad5,                   0x0054)
     494             : CODE_MAP_ANDROID(Numpad5,               0x004C)
     495             : 
     496             : CODE_MAP_WIN(Numpad6,                   0x004D)
     497             : CODE_MAP_MAC(Numpad6,                   kVK_ANSI_Keypad6)
     498           0 : CODE_MAP_X11(Numpad6,                   0x0055)
     499             : CODE_MAP_ANDROID(Numpad6,               0x004D)
     500             : 
     501             : CODE_MAP_WIN(Numpad7,                   0x0047)
     502             : CODE_MAP_MAC(Numpad7,                   kVK_ANSI_Keypad7)
     503           0 : CODE_MAP_X11(Numpad7,                   0x004F)
     504             : CODE_MAP_ANDROID(Numpad7,               0x0047)
     505             : 
     506             : CODE_MAP_WIN(Numpad8,                   0x0048)
     507             : CODE_MAP_MAC(Numpad8,                   kVK_ANSI_Keypad8)
     508           0 : CODE_MAP_X11(Numpad8,                   0x0050)
     509             : CODE_MAP_ANDROID(Numpad8,               0x0048)
     510             : 
     511             : CODE_MAP_WIN(Numpad9,                   0x0049)
     512             : CODE_MAP_MAC(Numpad9,                   kVK_ANSI_Keypad9)
     513           0 : CODE_MAP_X11(Numpad9,                   0x0051)
     514             : CODE_MAP_ANDROID(Numpad9,               0x0049)
     515             : 
     516             : CODE_MAP_WIN(NumpadAdd,                 0x004E)
     517             : CODE_MAP_MAC(NumpadAdd,                 kVK_ANSI_KeypadPlus)
     518           0 : CODE_MAP_X11(NumpadAdd,                 0x0056)
     519             : CODE_MAP_ANDROID(NumpadAdd,             0x004E)
     520             : 
     521             : CODE_MAP_WIN(NumpadComma,               0x007E)
     522             : CODE_MAP_MAC(NumpadComma,               kVK_JIS_KeypadComma)
     523           0 : CODE_MAP_X11(NumpadComma,               0x0081)
     524             : CODE_MAP_ANDROID(NumpadComma,           0x0079)
     525             : 
     526             : CODE_MAP_WIN(NumpadDecimal,             0x0053)
     527             : CODE_MAP_MAC(NumpadDecimal,             kVK_ANSI_KeypadDecimal)
     528           0 : CODE_MAP_X11(NumpadDecimal,             0x005B)
     529             : CODE_MAP_ANDROID(NumpadDecimal,         0x0053)
     530             : 
     531             : CODE_MAP_WIN(NumpadDivide,              0xE035)
     532             : CODE_MAP_MAC(NumpadDivide,              kVK_ANSI_KeypadDivide)
     533           0 : CODE_MAP_X11(NumpadDivide,              0x006A)
     534             : CODE_MAP_ANDROID(NumpadDivide,          0x0062)
     535             : 
     536             : CODE_MAP_WIN(NumpadEnter,               0xE01C)
     537             : CODE_MAP_MAC(NumpadEnter,               kVK_ANSI_KeypadEnter)
     538             : CODE_MAP_MAC(NumpadEnter,               kVK_Powerbook_KeypadEnter)
     539           0 : CODE_MAP_X11(NumpadEnter,               0x0068)
     540             : CODE_MAP_ANDROID(NumpadEnter,           0x0060)
     541             : 
     542             : CODE_MAP_WIN(NumpadEqual,               0x0059)
     543             : CODE_MAP_MAC(NumpadEqual,               kVK_ANSI_KeypadEquals)
     544           0 : CODE_MAP_X11(NumpadEqual,               0x007D)
     545             : CODE_MAP_ANDROID(NumpadEqual,           0x0075)
     546             : 
     547             : CODE_MAP_WIN(NumpadMultiply,            0x0037)
     548             : CODE_MAP_MAC(NumpadMultiply,            kVK_ANSI_KeypadMultiply)
     549           0 : CODE_MAP_X11(NumpadMultiply,            0x003F)
     550             : CODE_MAP_ANDROID(NumpadMultiply,        0x0037)
     551             : 
     552             : CODE_MAP_WIN(NumpadSubtract,            0x004A)
     553             : CODE_MAP_MAC(NumpadSubtract,            kVK_ANSI_KeypadMinus)
     554           0 : CODE_MAP_X11(NumpadSubtract,            0x0052)
     555             : CODE_MAP_ANDROID(NumpadSubtract,        0x004A)
     556             : 
     557             : // Function section
     558             : CODE_MAP_WIN(Escape,                    0x0001)
     559             : CODE_MAP_MAC(Escape,                    kVK_Escape)
     560           0 : CODE_MAP_X11(Escape,                    0x0009)
     561             : CODE_MAP_ANDROID(Escape,                0x0001)
     562             : 
     563             : CODE_MAP_WIN(F1,                        0x003B)
     564             : CODE_MAP_MAC(F1,                        kVK_F1)
     565           0 : CODE_MAP_X11(F1,                        0x0043)
     566             : CODE_MAP_ANDROID(F1,                    0x003B)
     567             : 
     568             : CODE_MAP_WIN(F2,                        0x003C)
     569             : CODE_MAP_MAC(F2,                        kVK_F2)
     570           0 : CODE_MAP_X11(F2,                        0x0044)
     571             : CODE_MAP_ANDROID(F2,                    0x003C)
     572             : 
     573             : CODE_MAP_WIN(F3,                        0x003D)
     574             : CODE_MAP_MAC(F3,                        kVK_F3)
     575           0 : CODE_MAP_X11(F3,                        0x0045)
     576             : CODE_MAP_ANDROID(F3,                    0x003D)
     577             : 
     578             : CODE_MAP_WIN(F4,                        0x003E)
     579             : CODE_MAP_MAC(F4,                        kVK_F4)
     580           0 : CODE_MAP_X11(F4,                        0x0046)
     581             : CODE_MAP_ANDROID(F4,                    0x003E)
     582             : 
     583             : CODE_MAP_WIN(F5,                        0x003F)
     584             : CODE_MAP_MAC(F5,                        kVK_F5)
     585           0 : CODE_MAP_X11(F5,                        0x0047)
     586             : CODE_MAP_ANDROID(F5,                    0x003F)
     587             : 
     588             : CODE_MAP_WIN(F6,                        0x0040)
     589             : CODE_MAP_MAC(F6,                        kVK_F6)
     590           0 : CODE_MAP_X11(F6,                        0x0048)
     591             : CODE_MAP_ANDROID(F6,                    0x0040)
     592             : 
     593             : CODE_MAP_WIN(F7,                        0x0041)
     594             : CODE_MAP_MAC(F7,                        kVK_F7)
     595           0 : CODE_MAP_X11(F7,                        0x0049)
     596             : CODE_MAP_ANDROID(F7,                    0x0041)
     597             : 
     598             : CODE_MAP_WIN(F8,                        0x0042)
     599             : CODE_MAP_MAC(F8,                        kVK_F8)
     600           0 : CODE_MAP_X11(F8,                        0x004A)
     601             : CODE_MAP_ANDROID(F8,                    0x0042)
     602             : 
     603             : CODE_MAP_WIN(F9,                        0x0043)
     604             : CODE_MAP_MAC(F9,                        kVK_F9)
     605           0 : CODE_MAP_X11(F9,                        0x004B)
     606             : CODE_MAP_ANDROID(F9,                    0x0043)
     607             : 
     608             : CODE_MAP_WIN(F10,                       0x0044)
     609             : CODE_MAP_MAC(F10,                       kVK_F10)
     610           0 : CODE_MAP_X11(F10,                       0x004C)
     611             : CODE_MAP_ANDROID(F10,                   0x0044)
     612             : 
     613             : CODE_MAP_WIN(F11,                       0x0057)
     614             : CODE_MAP_MAC(F11,                       kVK_F11)
     615           0 : CODE_MAP_X11(F11,                       0x005F)
     616             : CODE_MAP_ANDROID(F11,                   0x0057)
     617             : 
     618             : CODE_MAP_WIN(F12,                       0x0058)
     619             : CODE_MAP_MAC(F12,                       kVK_F12)
     620           0 : CODE_MAP_X11(F12,                       0x0060)
     621             : CODE_MAP_ANDROID(F12,                   0x0058)
     622             : 
     623             : CODE_MAP_WIN(F13,                       0x0064)
     624             : CODE_MAP_MAC(F13,                       kVK_F13) // PrintScreen on PC keyboard
     625           0 : CODE_MAP_X11(F13,                       0x00BF)
     626             : CODE_MAP_ANDROID(F13,                   0x00B7)
     627             : 
     628             : CODE_MAP_WIN(F14,                       0x0065)
     629             : CODE_MAP_MAC(F14,                       kVK_F14) // ScrollLock on PC keyboard
     630           0 : CODE_MAP_X11(F14,                       0x00C0)
     631             : CODE_MAP_ANDROID(F14,                   0x00B8)
     632             : 
     633             : CODE_MAP_WIN(F15,                       0x0066)
     634             : CODE_MAP_MAC(F15,                       kVK_F15) // Pause on PC keyboard
     635           0 : CODE_MAP_X11(F15,                       0x00C1)
     636             : CODE_MAP_ANDROID(F15,                   0x00B9)
     637             : 
     638             : CODE_MAP_WIN(F16,                       0x0067)
     639             : CODE_MAP_MAC(F16,                       kVK_F16)
     640           0 : CODE_MAP_X11(F16,                       0x00C2)
     641             : CODE_MAP_ANDROID(F16,                   0x00BA)
     642             : 
     643             : CODE_MAP_WIN(F17,                       0x0068)
     644             : CODE_MAP_MAC(F17,                       kVK_F17)
     645           0 : CODE_MAP_X11(F17,                       0x00C3)
     646             : CODE_MAP_ANDROID(F17,                   0x00BB)
     647             : 
     648             : CODE_MAP_WIN(F18,                       0x0069)
     649             : CODE_MAP_MAC(F18,                       kVK_F18)
     650           0 : CODE_MAP_X11(F18,                       0x00C4)
     651             : CODE_MAP_ANDROID(F18,                   0x00BC)
     652             : 
     653             : CODE_MAP_WIN(F19,                       0x006A)
     654             : CODE_MAP_MAC(F19,                       kVK_F19)
     655           0 : CODE_MAP_X11(F19,                       0x00C5)
     656             : CODE_MAP_ANDROID(F19,                   0x00BD)
     657             : 
     658             : CODE_MAP_WIN(F20,                       0x006B)
     659             : CODE_MAP_MAC(F20,                       kVK_F20)
     660           0 : CODE_MAP_X11(F20,                       0x00C6)
     661             : CODE_MAP_ANDROID(F20,                   0x00BE)
     662             : 
     663             : CODE_MAP_WIN(F21,                       0x006C)
     664           0 : CODE_MAP_X11(F21,                       0x00C7)
     665             : CODE_MAP_ANDROID(F21,                   0x00BF)
     666             : 
     667             : CODE_MAP_WIN(F22,                       0x006D)
     668           0 : CODE_MAP_X11(F22,                       0x00C8)
     669             : CODE_MAP_ANDROID(F22,                   0x00C0)
     670             : 
     671             : CODE_MAP_WIN(F23,                       0x006E)
     672           0 : CODE_MAP_X11(F23,                       0x00C9)
     673             : CODE_MAP_ANDROID(F23,                   0x00C1)
     674             : 
     675             : CODE_MAP_WIN(F24,                       0x0076)
     676           0 : CODE_MAP_X11(F24,                       0x00CA)
     677             : CODE_MAP_ANDROID(F24,                   0x00C2)
     678             : 
     679             : CODE_MAP_MAC(Fn,                        kVK_Function) // not available?
     680             : CODE_MAP_ANDROID(Fn,                    0x01D0)
     681             : 
     682             : CODE_MAP_WIN(PrintScreen,               0xE037)
     683             : CODE_MAP_WIN(PrintScreen,               0x0054) // Alt + PrintScreen
     684           0 : CODE_MAP_X11(PrintScreen,               0x006B)
     685             : CODE_MAP_ANDROID(PrintScreen,           0x0063)
     686             : 
     687             : CODE_MAP_WIN(ScrollLock,                0x0046)
     688           0 : CODE_MAP_X11(ScrollLock,                0x004E)
     689             : CODE_MAP_ANDROID(ScrollLock,            0x0046)
     690             : 
     691             : CODE_MAP_WIN(Pause,                     0x0045)
     692             : CODE_MAP_WIN(Pause,                     0xE046) // Ctrl + Pause
     693           0 : CODE_MAP_X11(Pause,                     0x007F)
     694             : CODE_MAP_ANDROID(Pause,                 0x0077)
     695             : 
     696             : // Media keys
     697             : CODE_MAP_WIN(BrowserBack,               0xE06A)
     698           0 : CODE_MAP_X11(BrowserBack,               0x00A6)
     699             : CODE_MAP_ANDROID(BrowserBack,           0x009E)
     700             : 
     701             : CODE_MAP_WIN(BrowserFavorites,          0xE066)
     702           0 : CODE_MAP_X11(BrowserFavorites,          0x00A4)
     703             : CODE_MAP_ANDROID(BrowserFavorites,      0x009C)
     704             : 
     705             : CODE_MAP_WIN(BrowserForward,            0xE069)
     706           0 : CODE_MAP_X11(BrowserForward,            0x00A7)
     707             : CODE_MAP_ANDROID(BrowserForward,        0x009F)
     708             : 
     709             : CODE_MAP_WIN(BrowserHome,               0xE032)
     710           0 : CODE_MAP_X11(BrowserHome,               0x00B4)
     711             : // CODE_MAP_ANDROID(BrowserHome) // not available? works as Home key.
     712             : 
     713             : CODE_MAP_WIN(BrowserRefresh,            0xE067)
     714           0 : CODE_MAP_X11(BrowserRefresh,            0x00B5)
     715             : CODE_MAP_ANDROID(BrowserRefresh,        0x00AD)
     716             : 
     717             : CODE_MAP_WIN(BrowserSearch,             0xE065)
     718           0 : CODE_MAP_X11(BrowserSearch,             0x00E1)
     719             : CODE_MAP_ANDROID(BrowserSearch,         0x00D9)
     720             : 
     721             : CODE_MAP_WIN(BrowserStop,               0xE068)
     722           0 : CODE_MAP_X11(BrowserStop,               0x0088)
     723             : CODE_MAP_ANDROID(BrowserStop,           0x0080)
     724             : 
     725             : // CODE_MAP_WIN(Eject) // not available?
     726             : // CODE_MAP_MAC(Eject) // not available?
     727           0 : CODE_MAP_X11(Eject,                     0x00A9)
     728             : CODE_MAP_ANDROID(Eject,                 0x00A1)
     729             : 
     730             : CODE_MAP_WIN(LaunchApp1,                0xE06B)
     731           0 : CODE_MAP_X11(LaunchApp1,                0x0098)
     732             : CODE_MAP_ANDROID(LaunchApp1,            0x0090)
     733             : 
     734             : CODE_MAP_WIN(LaunchApp2,                0xE021)
     735           0 : CODE_MAP_X11(LaunchApp2,                0x0094)
     736             : // CODE_MAP_ANDROID(LaunchApp2) // not available?
     737             : 
     738             : CODE_MAP_WIN(LaunchMail,                0xE06C)
     739           0 : CODE_MAP_X11(LaunchMail,                0x00A3)
     740             : // CODE_MAP_ANDROID(LaunchMail) // not available?
     741             : 
     742             : CODE_MAP_WIN(MediaPlayPause,            0xE022)
     743           0 : CODE_MAP_X11(MediaPlayPause,            0x00AC)
     744             : CODE_MAP_ANDROID(MediaPlayPause,        0x00A4)
     745             : 
     746             : CODE_MAP_WIN(MediaSelect,               0xE06D)
     747           0 : CODE_MAP_X11(MediaSelect,               0x00B3)
     748             : // CODE_MAP_ANDROID(MediaSelect) // not available?
     749             : 
     750             : CODE_MAP_WIN(MediaStop,                 0xE024)
     751           0 : CODE_MAP_X11(MediaStop,                 0x00AE)
     752             : CODE_MAP_ANDROID(MediaStop,             0x00A6)
     753             : 
     754             : CODE_MAP_WIN(MediaTrackNext,            0xE019)
     755           0 : CODE_MAP_X11(MediaTrackNext,            0x00AB)
     756             : CODE_MAP_ANDROID(MediaTrackNext,        0x00A3)
     757             : 
     758             : CODE_MAP_WIN(MediaTrackPrevious,        0xE010)
     759           0 : CODE_MAP_X11(MediaTrackPrevious,        0x00AD)
     760             : CODE_MAP_ANDROID(MediaTrackPrevious,    0x00A5)
     761             : 
     762             : CODE_MAP_WIN(Power,                     0xE05E)
     763             : CODE_MAP_MAC(Power,                     0x007F) // On 10.7 and 10.8 only
     764             : // CODE_MAP_X11(Power) // not available?
     765             : CODE_MAP_ANDROID(Power,                 0x0074)
     766             : 
     767             : // CODE_MAP_WIN(Sleep) // not available?
     768             : // CODE_MAP_X11(Sleep) // not available?
     769             : CODE_MAP_ANDROID(Sleep,                 0x008E)
     770             : 
     771             : CODE_MAP_WIN(VolumeDown,                0xE02E)
     772             : CODE_MAP_MAC(VolumeDown,                kVK_VolumeDown) // not available?
     773           0 : CODE_MAP_X11(VolumeDown,                0x007A)
     774             : CODE_MAP_ANDROID(VolumeDown,            0x0072)
     775             : 
     776             : CODE_MAP_WIN(VolumeMute,                0xE020)
     777             : CODE_MAP_MAC(VolumeMute,                kVK_Mute) // not available?
     778           0 : CODE_MAP_X11(VolumeMute,                0x0079)
     779             : CODE_MAP_ANDROID(VolumeMute,            0x0071)
     780             : 
     781             : CODE_MAP_WIN(VolumeUp,                  0xE030)
     782             : CODE_MAP_MAC(VolumeUp,                  kVK_VolumeUp) // not available?
     783           0 : CODE_MAP_X11(VolumeUp,                  0x007B)
     784             : CODE_MAP_ANDROID(VolumeUp,              0x0073) // side of body, not on keyboard
     785             : 
     786             : // CODE_MAP_WIN(WakeUp) // not available?
     787           0 : CODE_MAP_X11(WakeUp,                    0x0097)
     788             : CODE_MAP_ANDROID(WakeUp,                0x008F)
     789             : 
     790             : // Legacy editing keys
     791           0 : CODE_MAP_X11(Again,                     0x0089) // Again key on Sun keyboard
     792             : CODE_MAP_ANDROID(Again,                 0x0081) // Again key on Sun keyboard
     793             : 
     794           0 : CODE_MAP_X11(Copy,                      0x008D) // Copy key on Sun keyboard
     795             : CODE_MAP_ANDROID(Copy,                  0x0085) // Copy key on Sun keyboard
     796             : 
     797           0 : CODE_MAP_X11(Cut,                       0x0091) // Cut key on Sun keyboard
     798             : CODE_MAP_ANDROID(Cut,                   0x0089) // Cut key on Sun keyboard
     799             : 
     800           0 : CODE_MAP_X11(Find,                      0x0090) // Find key on Sun keyboard
     801             : CODE_MAP_ANDROID(Find,                  0x0088) // Find key on Sun keyboard
     802             : 
     803           0 : CODE_MAP_X11(Open,                      0x008E) // Open key on Sun keyboard
     804             : CODE_MAP_ANDROID(Open,                  0x0086) // Open key on Sun keyboard
     805             : 
     806           0 : CODE_MAP_X11(Paste,                     0x008F) // Paste key on Sun keyboard
     807             : CODE_MAP_ANDROID(Paste,                 0x0087) // Paste key on Sun keyboard
     808             : 
     809           0 : CODE_MAP_X11(Props,                     0x008A) // Props key on Sun keyboard
     810             : CODE_MAP_ANDROID(Props,                 0x0082) // Props key on Sun keyboard
     811             : 
     812           0 : CODE_MAP_X11(Select,                    0x008C) // Front key on Sun keyboard
     813             : CODE_MAP_ANDROID(Select,                0x0084) // Front key on Sun keyboard
     814             : 
     815           0 : CODE_MAP_X11(Undo,                      0x008B) // Undo key on Sun keyboard
     816             : CODE_MAP_ANDROID(Undo,                  0x0083) // Undo key on Sun keyboard
     817             : 
     818             : #undef CODE_MAP_WIN
     819             : #undef CODE_MAP_MAC
     820             : #undef CODE_MAP_X11
     821             : #undef CODE_MAP_ANDROID

Generated by: LCOV version 1.13