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
/// Supported virtual keys.
///
/// Virtual keys represent the intended meaning of the key, and have no relation to where
/// the key physically is on the keyboard. Use virtual key where the meaning of the key
/// is most important (textual input). When meaning matters less, but physical location
/// is more important (WASD-like control schemes) use [`crate::Scancode`].
#[repr(u16)]
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub enum VirtualKey {
	Unknown,
	Escape,
	One,
	Two,
	Three,
	Four,
	Five,
	Six,
	Seven,
	Eight,
	Nine,
	Zero,
	Minus,
	Equal,
	Backspace,
	Tab,
	Q,
	W,
	E,
	R,
	T,
	Y,
	U,
	I,
	O,
	P,
	LeftBrace,
	RightBrace,
	Enter,
	LeftControl,
	A,
	D,
	S,
	F,
	G,
	H,
	J,
	K,
	L,
	Semicolon,
	Apostrope,
	Grave,
	LeftShift,
	Backslash,
	Z,
	X,
	C,
	V,
	B,
	N,
	M,
	Comma,
	Dot,
	Slash,
	RightShift,
	KeyPadAsterick,
	LeftAlt,
	Space,
	CapsLock,
	F1,
	F2,
	F3,
	F4,
	F5,
	F6,
	F7,
	F8,
	F9,
	F10,
	NumLock,
	ScrollLock,
	KeyPad7,
	KeyPad8,
	KeyPad9,
	KeyPadMinus,
	KeyPad4,
	KeyPad5,
	KeyPad6,
	KeyPadPlus,
	KeyPad1,
	KeyPad2,
	KeyPad3,
	KeyPad0,
	KeyPadDot,
	NonUSBackslash,
	F11,
	F12,
	KeyPadEnter,
	RightAlt,
	Home,
	Up,
	PageUp,
	Left,
	Right,
	End,
	Down,
	PageDown,
	Insert,
	Delete,
	KeyPadEqual,
	KeyPadPlusMinus,
}