From f06f0c5ab373c71f4d7f35811c55df550b2db76c Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 22 Mar 2014 13:25:03 -0400 Subject: [PATCH] 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. --- areaplan.md | 204 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 204 insertions(+) diff --git a/areaplan.md b/areaplan.md index 8c27b9c..2b7e2f7 100644 --- a/areaplan.md +++ b/areaplan.md @@ -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] 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) +```