Browse Source

sys/windows: add virtual keycodes

hikari 3 years ago
parent
commit
2ccfaa7d4e
1 changed files with 252 additions and 0 deletions
  1. 252 0
      core/sys/windows/key_codes.odin

+ 252 - 0
core/sys/windows/key_codes.odin

@@ -0,0 +1,252 @@
+// +build windows
+package sys_windows
+
+// https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
+// Virtual Keys, Standard Set
+VK_LBUTTON  :: 0x01
+VK_RBUTTON  :: 0x02
+VK_CANCEL   :: 0x03
+VK_MBUTTON  :: 0x04 // NOT contiguous with L & RBUTTON
+VK_XBUTTON1 :: 0x05 // NOT contiguous with L & RBUTTON
+VK_XBUTTON2 :: 0x06 // NOT contiguous with L & RBUTTON
+
+// 0x07 : reserved
+
+VK_BACK :: 0x08
+VK_TAB  :: 0x09
+
+// 0x0A - 0x0B : reserved
+
+VK_CLEAR  :: 0x0C
+VK_RETURN :: 0x0D
+
+// 0x0E - 0x0F : unassigned
+
+VK_SHIFT      :: 0x10
+VK_CONTROL    :: 0x11
+VK_MENU       :: 0x12
+VK_PAUSE      :: 0x13
+VK_CAPITAL    :: 0x14
+VK_KANA       :: 0x15
+VK_HANGEUL    :: 0x15 // old name - should be here for compatibility
+VK_HANGUL     :: 0x15
+VK_IME_ON     :: 0x16
+VK_JUNJA      :: 0x17
+VK_FINAL      :: 0x18
+VK_HANJA      :: 0x19
+VK_KANJI      :: 0x19
+VK_IME_OFF    :: 0x1A
+VK_ESCAPE     :: 0x1B
+VK_CONVERT    :: 0x1C
+VK_NONCONVERT :: 0x1D
+VK_ACCEPT     :: 0x1E
+VK_MODECHANGE :: 0x1F
+VK_SPACE      :: 0x20
+VK_PRIOR      :: 0x21
+VK_NEXT       :: 0x22
+VK_END        :: 0x23
+VK_HOME       :: 0x24
+VK_LEFT       :: 0x25
+VK_UP         :: 0x26
+VK_RIGHT      :: 0x27
+VK_DOWN       :: 0x28
+VK_SELECT     :: 0x29
+VK_PRINT      :: 0x2A
+VK_EXECUTE    :: 0x2B
+VK_SNAPSHOT   :: 0x2C
+VK_INSERT     :: 0x2D
+VK_DELETE     :: 0x2E
+VK_HELP       :: 0x2F
+
+VK_0 :: '0'
+VK_1 :: '1'
+VK_2 :: '2'
+VK_3 :: '3'
+VK_4 :: '4'
+VK_5 :: '5'
+VK_6 :: '6'
+VK_7 :: '7'
+VK_8 :: '8'
+VK_9 :: '9'
+
+// 0x3A - 0x40 : unassigned
+
+VK_A :: 'A'
+VK_B :: 'B'
+VK_C :: 'C'
+VK_D :: 'D'
+VK_E :: 'E'
+VK_F :: 'F'
+VK_G :: 'G'
+VK_H :: 'H'
+VK_I :: 'I'
+VK_J :: 'J'
+VK_K :: 'K'
+VK_L :: 'L'
+VK_M :: 'M'
+VK_N :: 'N'
+VK_O :: 'O'
+VK_P :: 'P'
+VK_Q :: 'Q'
+VK_R :: 'R'
+VK_S :: 'S'
+VK_T :: 'T'
+VK_U :: 'U'
+VK_V :: 'V'
+VK_W :: 'W'
+VK_X :: 'X'
+VK_Y :: 'Y'
+VK_Z :: 'Z'
+
+VK_LWIN :: 0x5B
+VK_RWIN :: 0x5C
+VK_APPS :: 0x5D
+
+// 0x5E : reserved
+
+VK_SLEEP     :: 0x5F
+VK_NUMPAD0   :: 0x60
+VK_NUMPAD1   :: 0x61
+VK_NUMPAD2   :: 0x62
+VK_NUMPAD3   :: 0x63
+VK_NUMPAD4   :: 0x64
+VK_NUMPAD5   :: 0x65
+VK_NUMPAD6   :: 0x66
+VK_NUMPAD7   :: 0x67
+VK_NUMPAD8   :: 0x68
+VK_NUMPAD9   :: 0x69
+VK_MULTIPLY  :: 0x6A
+VK_ADD       :: 0x6B
+VK_SEPARATOR :: 0x6C
+VK_SUBTRACT  :: 0x6D
+VK_DECIMAL   :: 0x6E
+VK_DIVIDE    :: 0x6F
+VK_F1        :: 0x70
+VK_F2        :: 0x71
+VK_F3        :: 0x72
+VK_F4        :: 0x73
+VK_F5        :: 0x74
+VK_F6        :: 0x75
+VK_F7        :: 0x76
+VK_F8        :: 0x77
+VK_F9        :: 0x78
+VK_F10       :: 0x79
+VK_F11       :: 0x7A
+VK_F12       :: 0x7B
+VK_F13       :: 0x7C
+VK_F14       :: 0x7D
+VK_F15       :: 0x7E
+VK_F16       :: 0x7F
+VK_F17       :: 0x80
+VK_F18       :: 0x81
+VK_F19       :: 0x82
+VK_F20       :: 0x83
+VK_F21       :: 0x84
+VK_F22       :: 0x85
+VK_F23       :: 0x86
+VK_F24       :: 0x87
+
+// 0x88 - 0x8F : reserved
+
+VK_NUMLOCK :: 0x90
+VK_SCROLL  :: 0x91
+
+// NEC PC-9800 kbd definitions
+VK_OEM_NEC_EQUAL :: 0x92 // '=' key on numpad
+
+// Fujitsu/OASYS kbd definitions
+VK_OEM_FJ_JISHO   :: 0x92 // 'Dictionary' key
+VK_OEM_FJ_MASSHOU :: 0x93 // 'Unregister word' key
+VK_OEM_FJ_TOUROKU :: 0x94 // 'Register word' key
+VK_OEM_FJ_LOYA    :: 0x95 // 'Left OYAYUBI' key
+VK_OEM_FJ_ROYA    :: 0x96 // 'Right OYAYUBI' key
+
+// 0x97 - 0x9F : unassigned
+
+// VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
+// Used only as parameters to GetAsyncKeyState() and GetKeyState().
+// No other API or message will distinguish left and right keys in this way.
+VK_LSHIFT   :: 0xA0
+VK_RSHIFT   :: 0xA1
+VK_LCONTROL :: 0xA2
+VK_RCONTROL :: 0xA3
+VK_LMENU    :: 0xA4
+VK_RMENU    :: 0xA5
+
+VK_BROWSER_BACK        :: 0xA6
+VK_BROWSER_FORWARD     :: 0xA7
+VK_BROWSER_REFRESH     :: 0xA8
+VK_BROWSER_STOP        :: 0xA9
+VK_BROWSER_SEARCH      :: 0xAA
+VK_BROWSER_FAVORITES   :: 0xAB
+VK_BROWSER_HOME        :: 0xAC
+VK_VOLUME_MUTE         :: 0xAD
+VK_VOLUME_DOWN         :: 0xAE
+VK_VOLUME_UP           :: 0xAF
+VK_MEDIA_NEXT_TRACK    :: 0xB0
+VK_MEDIA_PREV_TRACK    :: 0xB1
+VK_MEDIA_STOP          :: 0xB2
+VK_MEDIA_PLAY_PAUSE    :: 0xB3
+VK_LAUNCH_MAIL         :: 0xB4
+VK_LAUNCH_MEDIA_SELECT :: 0xB5
+VK_LAUNCH_APP1         :: 0xB6
+VK_LAUNCH_APP2         :: 0xB7
+
+// 0xB8 - 0xB9 : reserved
+
+VK_OEM_1      :: 0xBA // ';:' for US
+VK_OEM_PLUS   :: 0xBB // '+'  any country
+VK_OEM_COMMA  :: 0xBC // ','  any country
+VK_OEM_MINUS  :: 0xBD // '-'  any country
+VK_OEM_PERIOD :: 0xBE // '.'  any country
+VK_OEM_2      :: 0xBF // '/?' for US
+VK_OEM_3      :: 0xC0 // '`~' for US
+
+// 0xC1 - 0xDA : reserved
+
+VK_OEM_4 :: 0xDB // '[{' for US
+VK_OEM_5 :: 0xDC // '\|' for US
+VK_OEM_6 :: 0xDD // ']}' for US
+VK_OEM_7 :: 0xDE // ''"' for US
+VK_OEM_8 :: 0xDF
+
+// 0xE0 : reserved
+
+// Various extended or enhanced keyboards
+VK_OEM_AX   :: 0xE1  //  'AX' key on Japanese AX kbd
+VK_OEM_102  :: 0xE2  //  "<>" or "\|" on RT 102-key kbd.
+VK_ICO_HELP :: 0xE3  //  Help key on ICO
+VK_ICO_00   :: 0xE4  //  00 key on ICO
+
+VK_PROCESSKEY :: 0xE5
+VK_ICO_CLEAR  :: 0xE6
+VK_PACKET     :: 0xE7
+
+// 0xE8 : unassigned
+
+// Nokia/Ericsson definitions
+VK_OEM_RESET   :: 0xE9
+VK_OEM_JUMP    :: 0xEA
+VK_OEM_PA1     :: 0xEB
+VK_OEM_PA2     :: 0xEC
+VK_OEM_PA3     :: 0xED
+VK_OEM_WSCTRL  :: 0xEE
+VK_OEM_CUSEL   :: 0xEF
+VK_OEM_ATTN    :: 0xF0
+VK_OEM_FINISH  :: 0xF1
+VK_OEM_COPY    :: 0xF2
+VK_OEM_AUTO    :: 0xF3
+VK_OEM_ENLW    :: 0xF4
+VK_OEM_BACKTAB :: 0xF5
+
+VK_ATTN      :: 0xF6
+VK_CRSEL     :: 0xF7
+VK_EXSEL     :: 0xF8
+VK_EREOF     :: 0xF9
+VK_PLAY      :: 0xFA
+VK_ZOOM      :: 0xFB
+VK_NONAME    :: 0xFC
+VK_PA1       :: 0xFD
+VK_OEM_CLEAR :: 0xFE
+
+// 0xFF : reserved