Added a list of Windows virtual key codes to the Area planning to start filtering the ones we can handle from the ones we can't; also expanded some other parts some more.

This commit is contained in:
Pietro Gagliardi 2014-03-22 13:25:03 -04:00
parent e73992ab71
commit f06f0c5ab3
1 changed files with 204 additions and 0 deletions

View File

@ -728,6 +728,7 @@ type KeyArea struct {
// and AZERTY keyboards, not when pressing the key that would be
// A on QWERTY keyboards on all layouts).
// If this field is zero, see ExtKey.
// [TODO: how do we handle numlock and capslock?]
Rune rune
// If Rune is zero, ExtKey contains a predeclared identifier
@ -778,3 +779,206 @@ This just leaves the GTK+ geometry mapping: there is a way to do it if X11 is th
[12:29] <ebassi> yes, you can assume that they are the same
(irc.gimp.net/#gtk+) ok; that works too I guess
let's go!
### And finally... COMMON KEYS
I meant Windows might be the biggest filter because it has a concrete list of virtual key codes but meh
Windows | GDK | [Cocoa if known]
----- | ----- | -----
VK_LBUTTON (0x01) - Left mouse button
VK_RBUTTON (0x02) - Right mouse button
VK_CANCEL (0x03) - Control-break processing
VK_MBUTTON (0x04) - Middle mouse button (three-button mouse)
VK_XBUTTON1 (0x05) - X1 mouse button
VK_XBUTTON2 (0x06) - X2 mouse button
VK_BACK (0x08) - BACKSPACE key
VK_TAB (0x09) - TAB key
VK_CLEAR (0x0C) - CLEAR key
VK_RETURN (0x0D) - ENTER key
VK_SHIFT (0x10) - SHIFT key
VK_CONTROL (0x11) - CTRL key
VK_MENU (0x12) - ALT key
VK_PAUSE (0x13) - PAUSE key
VK_CAPITAL (0x14) - CAPS LOCK key
VK_KANA/VK_HANGUEL/VK_HANGUL (0x15) - IME Kana mode/IME Hanguel mode (maintained for compatibility; use VK_HANGUL)/IME Hangul mode
VK_JUNJA (0x17) - IME Junja mode
VK_FINAL (0x18) - IME final mode
VK_HANJA/VK_KANJI (0x19) - IME Hanja mode/IME Kanji mode
VK_ESCAPE (0x1B) - ESC key
VK_CONVERT (0x1C) - IME convert
VK_NONCONVERT (0x1D) - IME nonconvert
VK_ACCEPT (0x1E) - IME accept
VK_MODECHANGE (0x1F) - IME mode change request
VK_SPACE (0x20) - SPACEBAR
VK_PRIOR (0x21) - PAGE UP key
VK_NEXT (0x22) - PAGE DOWN key
VK_END (0x23) - END key
VK_HOME (0x24) - HOME key
VK_LEFT (0x25) - LEFT ARROW key
VK_UP (0x26) - UP ARROW key
VK_RIGHT (0x27) - RIGHT ARROW key
VK_DOWN (0x28) - DOWN ARROW key
VK_SELECT (0x29) - SELECT key
VK_PRINT (0x2A) - PRINT key
VK_EXECUTE (0x2B) - EXECUTE key
VK_SNAPSHOT (0x2C) - PRINT SCREEN key
VK_INSERT (0x2D) - INS key
VK_DELETE (0x2E) - DEL key
VK_HELP (0x2F) - HELP key
0x30 - 0 key
0x31 - 1 key
0x32 - 2 key
0x33 - 3 key
0x34 - 4 key
0x35 - 5 key
0x36 - 6 key
0x37 - 7 key
0x38 - 8 key
0x39 - 9 key
0x41 - A key
0x42 - B key
0x43 - C key
0x44 - D key
0x45 - E key
0x46 - F key
0x47 - G key
0x48 - H key
0x49 - I key
0x4A - J key
0x4B - K key
0x4C - L key
0x4D - M key
0x4E - N key
0x4F - O key
0x50 - P key
0x51 - Q key
0x52 - R key
0x53 - S key
0x54 - T key
0x55 - U key
0x56 - V key
0x57 - W key
0x58 - X key
0x59 - Y key
0x5A - Z key
VK_LWIN (0x5B) - Left Windows key (Natural keyboard)
VK_RWIN (0x5C) - Right Windows key (Natural keyboard)
VK_APPS (0x5D) - Applications key (Natural keyboard)
VK_SLEEP (0x5F) - Computer Sleep key
VK_NUMPAD0 (0x60) - Numeric keypad 0 key
VK_NUMPAD1 (0x61) - Numeric keypad 1 key
VK_NUMPAD2 (0x62) - Numeric keypad 2 key
VK_NUMPAD3 (0x63) - Numeric keypad 3 key
VK_NUMPAD4 (0x64) - Numeric keypad 4 key
VK_NUMPAD5 (0x65) - Numeric keypad 5 key
VK_NUMPAD6 (0x66) - Numeric keypad 6 key
VK_NUMPAD7 (0x67) - Numeric keypad 7 key
VK_NUMPAD8 (0x68) - Numeric keypad 8 key
VK_NUMPAD9 (0x69) - Numeric keypad 9 key
VK_MULTIPLY (0x6A) - Multiply key
VK_ADD (0x6B) - Add key
VK_SEPARATOR (0x6C) - Separator key
VK_SUBTRACT (0x6D) - Subtract key
VK_DECIMAL (0x6E) - Decimal key
VK_DIVIDE (0x6F) - Divide key
VK_F1 (0x70) - F1 key
VK_F2 (0x71) - F2 key
VK_F3 (0x72) - F3 key
VK_F4 (0x73) - F4 key
VK_F5 (0x74) - F5 key
VK_F6 (0x75) - F6 key
VK_F7 (0x76) - F7 key
VK_F8 (0x77) - F8 key
VK_F9 (0x78) - F9 key
VK_F10 (0x79) - F10 key
VK_F11 (0x7A) - F11 key
VK_F12 (0x7B) - F12 key
VK_F13 (0x7C) - F13 key
VK_F14 (0x7D) - F14 key
VK_F15 (0x7E) - F15 key
VK_F16 (0x7F) - F16 key
VK_F17 (0x80) - F17 key
VK_F18 (0x81) - F18 key
VK_F19 (0x82) - F19 key
VK_F20 (0x83) - F20 key
VK_F21 (0x84) - F21 key
VK_F22 (0x85) - F22 key
VK_F23 (0x86) - F23 key
VK_F24 (0x87) - F24 key
VK_NUMLOCK (0x90) - NUM LOCK key
VK_SCROLL (0x91) - SCROLL LOCK key
0x92 - OEM specific
0x93 - OEM specific
0x94 - OEM specific
0x95 - OEM specific
0x96 - OEM specific
VK_LSHIFT (0xA0) - Left SHIFT key
VK_RSHIFT (0xA1) - Right SHIFT key
VK_LCONTROL (0xA2) - Left CONTROL key
VK_RCONTROL (0xA3) - Right CONTROL key
VK_LMENU (0xA4) - Left MENU key
VK_RMENU (0xA5) - Right MENU key
VK_BROWSER_BACK (0xA6) - Browser Back key
VK_BROWSER_FORWARD (0xA7) - Browser Forward key
VK_BROWSER_REFRESH (0xA8) - Browser Refresh key
VK_BROWSER_STOP (0xA9) - Browser Stop key
VK_BROWSER_SEARCH (0xAA) - Browser Search key
VK_BROWSER_FAVORITES (0xAB) - Browser Favorites key
VK_BROWSER_HOME (0xAC) - Browser Start and Home key
VK_VOLUME_MUTE (0xAD) - Volume Mute key
VK_VOLUME_DOWN (0xAE) - Volume Down key
VK_VOLUME_UP (0xAF) - Volume Up key
VK_MEDIA_NEXT_TRACK (0xB0) - Next Track key
VK_MEDIA_PREV_TRACK (0xB1) - Previous Track key
VK_MEDIA_STOP (0xB2) - Stop Media key
VK_MEDIA_PLAY_PAUSE (0xB3) - Play/Pause Media key
VK_LAUNCH_MAIL (0xB4) - Start Mail key
VK_LAUNCH_MEDIA_SELECT (0xB5) - Select Media key
VK_LAUNCH_APP1 (0xB6) - Start Application 1 key
VK_LAUNCH_APP2 (0xB7) - Start Application 2 key
VK_OEM_1 (0xBA) - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the ';:' key
VK_OEM_PLUS (0xBB) - For any country/region, the '+' key
VK_OEM_COMMA (0xBC) - For any country/region, the ',' key
VK_OEM_MINUS (0xBD) - For any country/region, the '-' key
VK_OEM_PERIOD (0xBE) - For any country/region, the '.' key
VK_OEM_2 (0xBF) - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '/?' key
VK_OEM_3 (0xC0) - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '`~' key
VK_OEM_4 (0xDB) - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '[{' key
VK_OEM_5 (0xDC) - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '\|' key
VK_OEM_6 (0xDD) - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the ']}' key
VK_OEM_7 (0xDE) - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the 'single-quote/double-quote' key
VK_OEM_8 (0xDF) - Used for miscellaneous characters; it can vary by keyboard.
0xE1 - OEM specific
VK_OEM_102 (0xE2) - Either the angle bracket key or the backslash key on the RT 102-key keyboard
0xE3 - OEM specific
0xE4 - OEM specific
VK_PROCESSKEY (0xE5) - IME PROCESS key
0xE6 - OEM specific
VK_PACKET (0xE7) - Used to pass Unicode characters as if they were keystrokes. The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP
0xE9 - OEM specific
0xEA - OEM specific
0xEB - OEM specific
0xEC - OEM specific
0xED - OEM specific
0xEE - OEM specific
0xEF - OEM specific
0xF0 - OEM specific
0xF1 - OEM specific
0xF2 - OEM specific
0xF3 - OEM specific
0xF4 - OEM specific
0xF5 - OEM specific
VK_ATTN (0xF6) - Attn key
VK_CRSEL (0xF7) - CrSel key
VK_EXSEL (0xF8) - ExSel key
VK_EREOF (0xF9) - Erase EOF key
VK_PLAY (0xFA) - Play key
VK_ZOOM (0xFB) - Zoom key
VK_NONAME (0xFC) - Reserved
VK_PA1 (0xFD) - PA1 key
VK_OEM_CLEAR (0xFE) - Clear key
Windows keys that will not be handled:
```
(TODO)
```