2014-03-25 14:06:43 -05:00
|
|
|
// 25 march 2014
|
|
|
|
|
|
|
|
package ui
|
|
|
|
|
|
|
|
// Virtual key codes.
|
|
|
|
const (
|
|
|
|
// from winuser.h
|
|
|
|
_VK_LBUTTON = 0x01
|
|
|
|
_VK_RBUTTON = 0x02
|
|
|
|
_VK_CANCEL = 0x03
|
|
|
|
_VK_MBUTTON = 0x04
|
|
|
|
_VK_XBUTTON1 = 0x05
|
|
|
|
_VK_XBUTTON2 = 0x06
|
|
|
|
_VK_BACK = 0x08
|
|
|
|
_VK_TAB = 0x09
|
|
|
|
_VK_CLEAR = 0x0C
|
|
|
|
_VK_RETURN = 0x0D
|
|
|
|
_VK_SHIFT = 0x10
|
|
|
|
_VK_CONTROL = 0x11
|
|
|
|
_VK_MENU = 0x12
|
|
|
|
_VK_PAUSE = 0x13
|
|
|
|
_VK_CAPITAL = 0x14
|
|
|
|
_VK_KANA = 0x15
|
|
|
|
_VK_HANGEUL = 0x15
|
|
|
|
_VK_HANGUL = 0x15
|
|
|
|
_VK_JUNJA = 0x17
|
|
|
|
_VK_FINAL = 0x18
|
|
|
|
_VK_HANJA = 0x19
|
|
|
|
_VK_KANJI = 0x19
|
|
|
|
_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_LWIN = 0x5B
|
|
|
|
_VK_RWIN = 0x5C
|
|
|
|
_VK_APPS = 0x5D
|
|
|
|
_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
|
|
|
|
_VK_NUMLOCK = 0x90
|
|
|
|
_VK_SCROLL = 0x91
|
|
|
|
_VK_OEM_NEC_EQUAL = 0x92
|
|
|
|
_VK_OEM_FJ_JISHO = 0x92
|
|
|
|
_VK_OEM_FJ_MASSHOU = 0x93
|
|
|
|
_VK_OEM_FJ_TOUROKU = 0x94
|
|
|
|
_VK_OEM_FJ_LOYA = 0x95
|
|
|
|
_VK_OEM_FJ_ROYA = 0x96
|
|
|
|
_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
|
|
|
|
_VK_OEM_1 = 0xBA
|
|
|
|
_VK_OEM_PLUS = 0xBB
|
|
|
|
_VK_OEM_COMMA = 0xBC
|
|
|
|
_VK_OEM_MINUS = 0xBD
|
|
|
|
_VK_OEM_PERIOD = 0xBE
|
|
|
|
_VK_OEM_2 = 0xBF
|
|
|
|
_VK_OEM_3 = 0xC0
|
|
|
|
_VK_OEM_4 = 0xDB
|
|
|
|
_VK_OEM_5 = 0xDC
|
|
|
|
_VK_OEM_6 = 0xDD
|
|
|
|
_VK_OEM_7 = 0xDE
|
|
|
|
_VK_OEM_8 = 0xDF
|
|
|
|
_VK_OEM_AX = 0xE1
|
|
|
|
_VK_OEM_102 = 0xE2
|
|
|
|
_VK_ICO_HELP = 0xE3
|
|
|
|
_VK_ICO_00 = 0xE4
|
|
|
|
_VK_PROCESSKEY = 0xE5
|
|
|
|
_VK_ICO_CLEAR = 0xE6
|
|
|
|
_VK_PACKET = 0xE7
|
|
|
|
_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
|
|
|
|
)
|
|
|
|
|
|
|
|
// Mouse event modifier masks.
|
|
|
|
const (
|
|
|
|
// from winuser.h
|
|
|
|
_MK_LBUTTON = 0x0001
|
|
|
|
_MK_RBUTTON = 0x0002
|
|
|
|
_MK_SHIFT = 0x0004
|
|
|
|
_MK_CONTROL = 0x0008
|
|
|
|
_MK_MBUTTON = 0x0010
|
|
|
|
_MK_XBUTTON1 = 0x0020
|
|
|
|
_MK_XBUTTON2 = 0x0040
|
|
|
|
)
|
|
|
|
|
|
|
|
// Window mouse event messages.
|
|
|
|
const (
|
2014-03-29 16:52:40 -05:00
|
|
|
_WM_MOUSEACTIVATE = 0x0021
|
|
|
|
|
2014-03-25 14:06:43 -05:00
|
|
|
// from winuser.h
|
|
|
|
_WM_MOUSEFIRST = 0x0200
|
|
|
|
_WM_MOUSEMOVE = 0x0200
|
|
|
|
_WM_LBUTTONDOWN = 0x0201
|
|
|
|
_WM_LBUTTONUP = 0x0202
|
|
|
|
_WM_LBUTTONDBLCLK = 0x0203
|
|
|
|
_WM_RBUTTONDOWN = 0x0204
|
|
|
|
_WM_RBUTTONUP = 0x0205
|
|
|
|
_WM_RBUTTONDBLCLK = 0x0206
|
|
|
|
_WM_MBUTTONDOWN = 0x0207
|
|
|
|
_WM_MBUTTONUP = 0x0208
|
|
|
|
_WM_MBUTTONDBLCLK = 0x0209
|
|
|
|
_WM_MOUSEWHEEL = 0x020A
|
|
|
|
_WM_XBUTTONDOWN = 0x020B
|
|
|
|
_WM_XBUTTONUP = 0x020C
|
|
|
|
_WM_XBUTTONDBLCLK = 0x020D
|
|
|
|
)
|
|
|
|
|
|
|
|
// Window keyboard event messages and related constants.
|
|
|
|
const (
|
2014-05-23 16:11:59 -05:00
|
|
|
// filed under keyboard events by MSDN
|
|
|
|
_WM_ACTIVATE = 0x0006
|
|
|
|
|
2014-03-25 14:06:43 -05:00
|
|
|
// from winuser.h
|
|
|
|
_WM_KEYDOWN = 0x0100
|
|
|
|
_WM_KEYUP = 0x0101
|
|
|
|
_WM_CHAR = 0x0102
|
|
|
|
_WM_DEADCHAR = 0x0103
|
|
|
|
_WM_SYSKEYDOWN = 0x0104
|
|
|
|
_WM_SYSKEYUP = 0x0105
|
|
|
|
_WM_SYSCHAR = 0x0106
|
|
|
|
_WM_SYSDEADCHAR = 0x0107
|
|
|
|
_WM_UNICHAR = 0x0109
|
|
|
|
_UNICODE_NOCHAR = 0xFFFF // used by _WM_UNICHAR
|
|
|
|
)
|