1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
///	Cancel key.
pub const KEY_CANCEL: u8 = 0x03;
///	Help key.
pub const KEY_HELP: u8 = 0x06;
///	Backspace key.
pub const KEY_BACK_SPACE: u8 = 0x08;
///	Tab key.
pub const KEY_TAB: u8 = 0x09;
///	"5" key on Numpad when NumLock is unlocked. Or on Mac, clear key which is positioned at NumLock key.
pub const KEY_CLEAR: u8 = 0x0C;
///	Return/enter key on the main keyboard.
pub const KEY_RETURN: u8 = 0x0D;
pub const KEY_ENTER: u8 = 0x0E;
///	Shift key.
pub const KEY_SHIFT: u8 = 0x10;
///	Control key.
pub const KEY_CONTROL: u8 = 0x11;
///	Alt (Option on Mac) key.
pub const KEY_ALT: u8 = 0x12;
///	Pause key.
pub const KEY_PAUSE: u8 = 0x13;
///	Caps lock.
pub const KEY_CAPS_LOCK: u8 = 0x14;
pub const KEY_KANA: u8 = 0x15;
pub const KEY_HANGUL: u8 = 0x15;
///	"英数" key on Japanese Mac keyboard.
pub const KEY_EISU: u8 = 0x16;
pub const KEY_JUNJA: u8 = 0x17;
pub const KEY_FINAL: u8 = 0x18;
pub const KEY_HANJA: u8 = 0x19;
pub const KEY_KANJI: u8 = 0x19;
///	Escape key.
pub const KEY_ESCAPE: u8 = 0x1B;
pub const KEY_CONVERT: u8 = 0x1C;
pub const KEY_NONCONVERT: u8 = 0x1D;
pub const KEY_ACCEPT: u8 = 0x1E;
pub const KEY_MODECHANGE: u8 = 0x1F;
///	Space bar.
pub const KEY_SPACE: u8 = 0x20;
///	Page Up key.
pub const KEY_PAGE_UP: u8 = 0x21;
///	Page Down key.
pub const KEY_PAGE_DOWN: u8 = 0x22;
///	End key.
pub const KEY_END: u8 = 0x23;
///	Home key.
pub const KEY_HOME: u8 = 0x24;
///	Left arrow.
pub const KEY_LEFT: u8 = 0x25;
///	Up arrow.
pub const KEY_UP: u8 = 0x26;
///	Right arrow.
pub const KEY_RIGHT: u8 = 0x27;
///	Down arrow.
pub const KEY_DOWN: u8 = 0x28;
pub const KEY_SELECT: u8 = 0x29;
pub const KEY_PRINT: u8 = 0x2A;
pub const KEY_EXECUTE: u8 = 0x2B;
///	Print Screen key.
pub const KEY_PRINTSCREEN: u8 = 0x2C;
///	Ins(ert) key.
pub const KEY_INSERT: u8 = 0x2D;
///	Del(ete) key.
pub const KEY_DELETE: u8 = 0x2E;
///	"0" key in standard key location.
pub const KEY_0: u8 = 0x30;
///	"1" key in standard key location.
pub const KEY_1: u8 = 0x31;
///	"2" key in standard key location.
pub const KEY_2: u8 = 0x32;
///	"3" key in standard key location.
pub const KEY_3: u8 = 0x33;
///	"4" key in standard key location.
pub const KEY_4: u8 = 0x34;
///	"5" key in standard key location.
pub const KEY_5: u8 = 0x35;
///	"6" key in standard key location.
pub const KEY_6: u8 = 0x36;
///	"7" key in standard key location.
pub const KEY_7: u8 = 0x37;
///	"8" key in standard key location.
pub const KEY_8: u8 = 0x38;
///	"9" key in standard key location.
pub const KEY_9: u8 = 0x39;
///	Colon (":") key.
pub const KEY_COLON: u8 = 0x3A;
///	Semicolon (";") key.
pub const KEY_SEMICOLON: u8 = 0x3B;
///	Less-than ("<") key.
pub const KEY_LESS_THAN: u8 = 0x3C;
///	Equals ("=") key.
pub const KEY_EQUALS: u8 = 0x3D;
///	Greater-than (">") key.
pub const KEY_GREATER_THAN: u8 = 0x3E;
///	Question mark ("?") key.
pub const KEY_QUESTION_MARK: u8 = 0x3F;
///	Atmark ("@") key.
pub const KEY_AT: u8 = 0x40;
///	"A" key.
pub const KEY_A: u8 = 0x41;
///	"B" key.
pub const KEY_B: u8 = 0x42;
///	"C" key.
pub const KEY_C: u8 = 0x43;
///	"D" key.
pub const KEY_D: u8 = 0x44;
///	"E" key.
pub const KEY_E: u8 = 0x45;
///	"F" key.
pub const KEY_F: u8 = 0x46;
///	"G" key.
pub const KEY_G: u8 = 0x47;
///	"H" key.
pub const KEY_H: u8 = 0x48;
///	"I" key.
pub const KEY_I: u8 = 0x49;
///	"J" key.
pub const KEY_J: u8 = 0x4A;
///	"K" key.
pub const KEY_K: u8 = 0x4B;
///	"L" key.
pub const KEY_L: u8 = 0x4C;
///	"M" key.
pub const KEY_M: u8 = 0x4D;
///	"N" key.
pub const KEY_N: u8 = 0x4E;
///	"O" key.
pub const KEY_O: u8 = 0x4F;
///	"P" key.
pub const KEY_P: u8 = 0x50;
///	"Q" key.
pub const KEY_Q: u8 = 0x51;
///	"R" key.
pub const KEY_R: u8 = 0x52;
///	"S" key.
pub const KEY_S: u8 = 0x53;
///	"T" key.
pub const KEY_T: u8 = 0x54;
///	"U" key.
pub const KEY_U: u8 = 0x55;
///	"V" key.
pub const KEY_V: u8 = 0x56;
///	"W" key.
pub const KEY_W: u8 = 0x57;
///	"X" key.
pub const KEY_X: u8 = 0x58;
///	"Y" key.
pub const KEY_Y: u8 = 0x59;
///	"Z" key.
pub const KEY_Z: u8 = 0x5A;
///	Windows logo key on Windows. Or Super or Hyper key on Linux.
pub const KEY_WIN: u8 = 0x5B;
///	Opening context menu key.
pub const KEY_CONTEXT_MENU: u8 = 0x5D;
pub const KEY_SLEEP: u8 = 0x5F;
///	"0" on the numeric keypad.
pub const KEY_NUMPAD0: u8 = 0x60;
///	"1" on the numeric keypad.
pub const KEY_NUMPAD1: u8 = 0x61;
///	"2" on the numeric keypad.
pub const KEY_NUMPAD2: u8 = 0x62;
///	"3" on the numeric keypad.
pub const KEY_NUMPAD3: u8 = 0x63;
///	"4" on the numeric keypad.
pub const KEY_NUMPAD4: u8 = 0x64;
///	"5" on the numeric keypad.
pub const KEY_NUMPAD5: u8 = 0x65;
///	"6" on the numeric keypad.
pub const KEY_NUMPAD6: u8 = 0x66;
///	"7" on the numeric keypad.
pub const KEY_NUMPAD7: u8 = 0x67;
///	"8" on the numeric keypad.
pub const KEY_NUMPAD8: u8 = 0x68;
///	"9" on the numeric keypad.
pub const KEY_NUMPAD9: u8 = 0x69;
///	"*" on the numeric keypad.
pub const KEY_MULTIPLY: u8 = 0x6A;
///	"+" on the numeric keypad.
pub const KEY_ADD: u8 = 0x6B;
pub const KEY_SEPARATOR: u8 = 0x6C;
///	"-" on the numeric keypad.
pub const KEY_SUBTRACT: u8 = 0x6D;
///	Decimal point on the numeric keypad.
pub const KEY_DECIMAL: u8 = 0x6E;
///	"/" on the numeric keypad.
pub const KEY_DIVIDE: u8 = 0x6F;
///	F1 key.
pub const KEY_F1: u8 = 0x70;
///	F2 key.
pub const KEY_F2: u8 = 0x71;
///	F3 key.
pub const KEY_F3: u8 = 0x72;
///	F4 key.
pub const KEY_F4: u8 = 0x73;
///	F5 key.
pub const KEY_F5: u8 = 0x74;
///	F6 key.
pub const KEY_F6: u8 = 0x75;
///	F7 key.
pub const KEY_F7: u8 = 0x76;
///	F8 key.
pub const KEY_F8: u8 = 0x77;
///	F9 key.
pub const KEY_F9: u8 = 0x78;
///	F10 key.
pub const KEY_F10: u8 = 0x79;
///	F11 key.
pub const KEY_F11: u8 = 0x7A;
///	F12 key.
pub const KEY_F12: u8 = 0x7B;
///	F13 key.
pub const KEY_F13: u8 = 0x7C;
///	F14 key.
pub const KEY_F14: u8 = 0x7D;
///	F15 key.
pub const KEY_F15: u8 = 0x7E;
///	F16 key.
pub const KEY_F16: u8 = 0x7F;
///	F17 key.
pub const KEY_F17: u8 = 0x80;
///	F18 key.
pub const KEY_F18: u8 = 0x81;
///	F19 key.
pub const KEY_F19: u8 = 0x82;
///	F20 key.
pub const KEY_F20: u8 = 0x83;
///	F21 key.
pub const KEY_F21: u8 = 0x84;
///	F22 key.
pub const KEY_F22: u8 = 0x85;
///	F23 key.
pub const KEY_F23: u8 = 0x86;
///	F24 key.
pub const KEY_F24: u8 = 0x87;
///	Num Lock key.
pub const KEY_NUM_LOCK: u8 = 0x90;
///	Scroll Lock key.
pub const KEY_SCROLL_LOCK: u8 = 0x91;
///	An OEM specific key on Windows. This was used for "Dictionary" key on Fujitsu OASYS.
pub const KEY_WIN_OEM_FJ_JISHO: u8 = 0x92;
///	An OEM specific key on Windows. This was used for "Unregister word" key on Fujitsu OASYS.
pub const KEY_WIN_OEM_FJ_MASSHOU: u8 = 0x93;
///	An OEM specific key on Windows. This was used for "Register word" key on Fujitsu OASYS.
pub const KEY_WIN_OEM_FJ_TOUROKU: u8 = 0x94;
///	An OEM specific key on Windows. This was used for "Left OYAYUBI" key on Fujitsu OASYS.
pub const KEY_WIN_OEM_FJ_LOYA: u8 = 0x95;
///	An OEM specific key on Windows. This was used for "Right OYAYUBI" key on Fujitsu OASYS.
pub const KEY_WIN_OEM_FJ_ROYA: u8 = 0x96;
///	Circumflex ("^") key.
pub const KEY_CIRCUMFLEX: u8 = 0xA0;
///	Exclamation ("!") key.
pub const KEY_EXCLAMATION: u8 = 0xA1;
///	Double quote (""") key.
pub const KEY_DOUBLE_QUOTE: u8 = 0xA3;
///	Hash ("#") key.
pub const KEY_HASH: u8 = 0xA3;
///	Dollar sign ("$") key.
pub const KEY_DOLLAR: u8 = 0xA4;
///	Percent ("%") key.
pub const KEY_PERCENT: u8 = 0xA5;
///	Ampersand ("&") key.
pub const KEY_AMPERSAND: u8 = 0xA6;
///	Underscore ("_") key.
pub const KEY_UNDERSCORE: u8 = 0xA7;
///	Open parenthesis ("(") key.
pub const KEY_OPEN_PAREN: u8 = 0xA8;
///	Close parenthesis (")") key.
pub const KEY_CLOSE_PAREN: u8 = 0xA9;
///	Asterisk ("*") key.
pub const KEY_ASTERISK: u8 = 0xAA;
///	Plus ("+") key.
pub const KEY_PLUS: u8 = 0xAB;
///	Pipe ("|") key.
pub const KEY_PIPE: u8 = 0xAC;
///	Hyphen-US/docs/Minus ("-") key.
pub const KEY_HYPHEN_MINUS: u8 = 0xAD;
///	Open curly bracket ("{") key.
pub const KEY_OPEN_CURLY_BRACKET: u8 = 0xAE;
///	Close curly bracket ("}") key.
pub const KEY_CLOSE_CURLY_BRACKET: u8 = 0xAF;
///	Tilde ("~") key.
pub const KEY_TILDE: u8 = 0xB0;
///	Audio mute key.
pub const KEY_VOLUME_MUTE: u8 = 0xB5;
///	Audio volume down key
pub const KEY_VOLUME_DOWN: u8 = 0xB6;
///	Audio volume up key
pub const KEY_VOLUME_UP: u8 = 0xB7;
///	Comma (",") key.
pub const KEY_COMMA: u8 = 0xBC;
///	Period (".") key.
pub const KEY_PERIOD: u8 = 0xBE;
///	Slash ("/") key.
pub const KEY_SLASH: u8 = 0xBF;
///	Back tick ("`") key.
pub const KEY_BACK_QUOTE: u8 = 0xC0;
///	Open square bracket ("[") key.
pub const KEY_OPEN_BRACKET: u8 = 0xDB;
///	Back slash ("\") key.
pub const KEY_BACK_SLASH: u8 = 0xDC;
///	Close square bracket ("]") key.
pub const KEY_CLOSE_BRACKET: u8 = 0xDD;
///	Quote (''') key.
pub const KEY_QUOTE: u8 = 0xDE;
///	Meta key on Linux, Command key on Mac.
pub const KEY_META: u8 = 0xE0;
///	AltGr key (Level 3 Shift key or Level 5 Shift key) on Linux.
pub const KEY_ALTGR: u8 = 0xE1;
///	An OEM specific key on Windows. This is (was?) used for Olivetti ICO keyboard.
pub const KEY_WIN_ICO_HELP: u8 = 0xE3;
///	An OEM specific key on Windows. This is (was?) used for Olivetti ICO keyboard.
pub const KEY_WIN_ICO_00: u8 = 0xE4;
///	An OEM specific key on Windows. This is (was?) used for Olivetti ICO keyboard.
pub const KEY_WIN_ICO_CLEAR: u8 = 0xE6;
///	An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
pub const KEY_WIN_OEM_RESET: u8 = 0xE9;
///	An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
pub const KEY_WIN_OEM_JUMP: u8 = 0xEA;
///	An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
pub const KEY_WIN_OEM_PA1: u8 = 0xEB;
///	An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
pub const KEY_WIN_OEM_PA2: u8 = 0xEC;
///	An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
pub const KEY_WIN_OEM_PA3: u8 = 0xED;
///	An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
pub const KEY_WIN_OEM_WSCTRL: u8 = 0xEE;
///	An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
pub const KEY_WIN_OEM_CUSEL: u8 = 0xEF;
///	An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
pub const KEY_WIN_OEM_ATTN: u8 = 0xF0;
///	An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
pub const KEY_WIN_OEM_FINISH: u8 = 0xF1;
///	An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
pub const KEY_WIN_OEM_COPY: u8 = 0xF2;
///	An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
pub const KEY_WIN_OEM_AUTO: u8 = 0xF3;
///	An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
pub const KEY_WIN_OEM_ENLW: u8 = 0xF4;
///	An OEM specific key on Windows. This was used for Nokia/Ericsson's device.
pub const KEY_WIN_OEM_BACKTAB: u8 = 0xF5;
///	Attn (Attention) key of IBM midrange computers, e.g., AS/400.
pub const KEY_ATTN: u8 = 0xF6;
///	CrSel (Cursor Selection) key of IBM 3270 keyboard layout.
pub const KEY_CRSEL: u8 = 0xF7;
///	ExSel (Extend Selection) key of IBM 3270 keyboard layout.
pub const KEY_EXSEL: u8 = 0xF8;
///	Erase EOF key of IBM 3270 keyboard layout.
pub const KEY_EREOF: u8 = 0xF9;
///	Play key of IBM 3270 keyboard layout.
pub const KEY_PLAY: u8 = 0xFA;
///	Zoom key.
pub const KEY_ZOOM: u8 = 0xFB;
///	PA1 key of IBM 3270 keyboard layout.
pub const KEY_PA1: u8 = 0xFD;
/// Clear key, but we're not sure the meaning difference from KEY_CLEAR.
pub const KEY_WIN_OEM_CLEAR: u8 = 0xFE;