|  | // Copyright 2014 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | module mojo; | 
|  |  | 
|  | // Cross platform keyboard codes. | 
|  | // | 
|  | // Because the web has standardized on Win32 keyboard codes, so does mojo. | 
|  | enum KeyboardCode { | 
|  | BACK                      = 0x08, | 
|  | TAB                       = 0x09, | 
|  | CLEAR                     = 0x0C, | 
|  | RETURN                    = 0x0D, | 
|  | SHIFT                     = 0x10, | 
|  | CONTROL                   = 0x11, | 
|  | MENU                      = 0x12,  // a.k.a. ALT | 
|  | PAUSE                     = 0x13, | 
|  | CAPITAL                   = 0x14, | 
|  | KANA                      = 0x15, | 
|  | HANGUL                    = 0x15, | 
|  | JUNJA                     = 0x17, | 
|  | FINAL                     = 0x18, | 
|  | HANJA                     = 0x19, | 
|  | KANJI                     = 0x19, | 
|  | ESCAPE                    = 0x1B, | 
|  | CONVERT                   = 0x1C, | 
|  | NONCONVERT                = 0x1D, | 
|  | ACCEPT                    = 0x1E, | 
|  | MODECHANGE                = 0x1F, | 
|  | SPACE                     = 0x20, | 
|  | PRIOR                     = 0x21, | 
|  | NEXT                      = 0x22, | 
|  | END                       = 0x23, | 
|  | HOME                      = 0x24, | 
|  | LEFT                      = 0x25, | 
|  | UP                        = 0x26, | 
|  | RIGHT                     = 0x27, | 
|  | DOWN                      = 0x28, | 
|  | SELECT                    = 0x29, | 
|  | PRINT                     = 0x2A, | 
|  | EXECUTE                   = 0x2B, | 
|  | SNAPSHOT                  = 0x2C, | 
|  | INSERT                    = 0x2D, | 
|  | DELETE                    = 0x2E, | 
|  | HELP                      = 0x2F, | 
|  | NUM_0                     = 0x30, | 
|  | NUM_1                     = 0x31, | 
|  | NUM_2                     = 0x32, | 
|  | NUM_3                     = 0x33, | 
|  | NUM_4                     = 0x34, | 
|  | NUM_5                     = 0x35, | 
|  | NUM_6                     = 0x36, | 
|  | NUM_7                     = 0x37, | 
|  | NUM_8                     = 0x38, | 
|  | NUM_9                     = 0x39, | 
|  | A                         = 0x41, | 
|  | B                         = 0x42, | 
|  | C                         = 0x43, | 
|  | D                         = 0x44, | 
|  | E                         = 0x45, | 
|  | F                         = 0x46, | 
|  | G                         = 0x47, | 
|  | H                         = 0x48, | 
|  | I                         = 0x49, | 
|  | J                         = 0x4A, | 
|  | K                         = 0x4B, | 
|  | L                         = 0x4C, | 
|  | M                         = 0x4D, | 
|  | N                         = 0x4E, | 
|  | O                         = 0x4F, | 
|  | P                         = 0x50, | 
|  | Q                         = 0x51, | 
|  | R                         = 0x52, | 
|  | S                         = 0x53, | 
|  | T                         = 0x54, | 
|  | U                         = 0x55, | 
|  | V                         = 0x56, | 
|  | W                         = 0x57, | 
|  | X                         = 0x58, | 
|  | Y                         = 0x59, | 
|  | Z                         = 0x5A, | 
|  | LWIN                      = 0x5B, | 
|  | COMMAND                   = 0x5B,  // Provide the Mac name for convenience. | 
|  | RWIN                      = 0x5C, | 
|  | APPS                      = 0x5D, | 
|  | SLEEP                     = 0x5F, | 
|  | NUMPAD0                   = 0x60, | 
|  | NUMPAD1                   = 0x61, | 
|  | NUMPAD2                   = 0x62, | 
|  | NUMPAD3                   = 0x63, | 
|  | NUMPAD4                   = 0x64, | 
|  | NUMPAD5                   = 0x65, | 
|  | NUMPAD6                   = 0x66, | 
|  | NUMPAD7                   = 0x67, | 
|  | NUMPAD8                   = 0x68, | 
|  | NUMPAD9                   = 0x69, | 
|  | MULTIPLY                  = 0x6A, | 
|  | ADD                       = 0x6B, | 
|  | SEPARATOR                 = 0x6C, | 
|  | SUBTRACT                  = 0x6D, | 
|  | DECIMAL                   = 0x6E, | 
|  | DIVIDE                    = 0x6F, | 
|  | F1                        = 0x70, | 
|  | F2                        = 0x71, | 
|  | F3                        = 0x72, | 
|  | F4                        = 0x73, | 
|  | F5                        = 0x74, | 
|  | F6                        = 0x75, | 
|  | F7                        = 0x76, | 
|  | F8                        = 0x77, | 
|  | F9                        = 0x78, | 
|  | F10                       = 0x79, | 
|  | F11                       = 0x7A, | 
|  | F12                       = 0x7B, | 
|  | F13                       = 0x7C, | 
|  | F14                       = 0x7D, | 
|  | F15                       = 0x7E, | 
|  | F16                       = 0x7F, | 
|  | F17                       = 0x80, | 
|  | F18                       = 0x81, | 
|  | F19                       = 0x82, | 
|  | F20                       = 0x83, | 
|  | F21                       = 0x84, | 
|  | F22                       = 0x85, | 
|  | F23                       = 0x86, | 
|  | F24                       = 0x87, | 
|  | NUMLOCK                   = 0x90, | 
|  | SCROLL                    = 0x91, | 
|  | LSHIFT                    = 0xA0, | 
|  | RSHIFT                    = 0xA1, | 
|  | LCONTROL                  = 0xA2, | 
|  | RCONTROL                  = 0xA3, | 
|  | LMENU                     = 0xA4, | 
|  | RMENU                     = 0xA5, | 
|  | BROWSER_BACK              = 0xA6, | 
|  | BROWSER_FORWARD           = 0xA7, | 
|  | BROWSER_REFRESH           = 0xA8, | 
|  | BROWSER_STOP              = 0xA9, | 
|  | BROWSER_SEARCH            = 0xAA, | 
|  | BROWSER_FAVORITES         = 0xAB, | 
|  | BROWSER_HOME              = 0xAC, | 
|  | VOLUME_MUTE               = 0xAD, | 
|  | VOLUME_DOWN               = 0xAE, | 
|  | VOLUME_UP                 = 0xAF, | 
|  | MEDIA_NEXT_TRACK          = 0xB0, | 
|  | MEDIA_PREV_TRACK          = 0xB1, | 
|  | MEDIA_STOP                = 0xB2, | 
|  | MEDIA_PLAY_PAUSE          = 0xB3, | 
|  | MEDIA_LAUNCH_MAIL         = 0xB4, | 
|  | MEDIA_LAUNCH_MEDIA_SELECT = 0xB5, | 
|  | MEDIA_LAUNCH_APP1         = 0xB6, | 
|  | MEDIA_LAUNCH_APP2         = 0xB7, | 
|  |  | 
|  | OEM_1                     = 0xBA, | 
|  | OEM_PLUS                  = 0xBB, | 
|  | OEM_COMMA                 = 0xBC, | 
|  | OEM_MINUS                 = 0xBD, | 
|  | OEM_PERIOD                = 0xBE, | 
|  | OEM_2                     = 0xBF, | 
|  | OEM_3                     = 0xC0, | 
|  | OEM_4                     = 0xDB, | 
|  | OEM_5                     = 0xDC, | 
|  | OEM_6                     = 0xDD, | 
|  | OEM_7                     = 0xDE, | 
|  | OEM_8                     = 0xDF, | 
|  | OEM_102                   = 0xE2, | 
|  | PROCESSKEY                = 0xE5, | 
|  | PACKET                    = 0xE7, | 
|  | DBE_SBCSCHAR              = 0xF3, | 
|  | DBE_DBCSCHAR              = 0xF4, | 
|  | ATTN                      = 0xF6, | 
|  | CRSEL                     = 0xF7, | 
|  | EXSEL                     = 0xF8, | 
|  | EREOF                     = 0xF9, | 
|  | PLAY                      = 0xFA, | 
|  | ZOOM                      = 0xFB, | 
|  | NONAME                    = 0xFC, | 
|  | PA1                       = 0xFD, | 
|  | OEM_CLEAR                 = 0xFE, | 
|  | UNKNOWN                   = 0, | 
|  |  | 
|  | // Windows does not have a specific key code for AltGr. We use the unused | 
|  | // VK_OEM_AX to represent AltGr, matching the behaviour of Firefox on Linux. | 
|  | ALTGR                     = 0xE1, | 
|  | }; |