namespace GlitchyEngine;

/// <summary>
/// An enum of all keys that can be queried using methods in <see cref="Input"/>.
/// </summary>
public enum Key
{
	// Based on Win32 Virtual Keys
	LeftButton		= 1,	// Left mouse button
	RightRutton	= 2,	// Right mouse button
	MiddleButton   = 4,	// Middle mouse button(three - button mouse)
	XButton1 		= 5,	// X1 mouse button
	XButton2 		= 6,	// X2 mouse button
	Backspace 		= 8,	// Backspace key
	Tab 			= 9,	// Tab key
	Return 		= 13,	// Enter key
	Shift 			= 16,	// Shift key
	Control 		= 17,	// Ctrl key
	Alt 			= 18,	// Alt key
	Pause 			= 19,	// Pause key
	CapsLock		= 20,	// Caps Lock key
	Escape 		= 27,	// ESC key
	Space 			= 32,	// Spacebar
	Prior 			= 33,	// Page Up key
	Next 			= 34,	// Page Down key
	End 			= 35,	// END key
	Home 			= 36,	// HOME key
	Left 			= 37,	// LEFT ARROW key
	Up 			= 38,	// UP ARROW key
	Right 			= 39,	// RIGHT ARROW key
	Down 			= 40,	// DOWN ARROW key
	Print 			= 42,	// PRINT key
	Insert 		= 45,	// INS key
	Delete 		= 46,	// DEL key
	Help 			= 47,	// HELP key
	Zero 			= 48,	// 0 key
	One 			= 49,	// 1 key
	Two 			= 50,	// 2 key
	Three 			= 51,	// 3 key
	Four 			= 52,	// 4 key
	Five 			= 53,	// 5 key
	Six 			= 54,	// 6 key
	Seven 			= 55,	// 7 key
	Eight 			= 56,	// 8 key
	Nine 			= 57,	// 9 key
	A 				= 65,	// A key
	B 				= 66,	// B key
	C 				= 67,	// C key
	D 				= 68,	// D key
	E 				= 69,	// E key
	F 				= 70,	// F key
	G 				= 71,	// G key
	H 				= 72,	// H key
	I 				= 73,	// I key
	J 				= 74,	// J key
	K 				= 75,	// K key
	L 				= 76,	// L key
	M 				= 77,	// M key
	N 				= 78,	// N key
	O 				= 79,	// O key
	P 				= 80,	// P key
	Q 				= 81,	// Q key
	R 				= 82,	// R key
	S 				= 83,	// S key
	T 				= 84,	// T key
	U 				= 85,	// U key
	V 				= 86,	// V key
	W 				= 87,	// W key
	X 				= 88,	// X key
	Y 				= 89,	// Y key
	Z 				= 90,	// Z key
	LeftSuper		= 91,	// Left Windows key(Microsoft® Natural® keyboard)
	RightSuper		= 92,	// Right Windows key(Natural keyboard)
	ContextMenu	= 93,	// Context Menu key (VK_APPS)
	Numpad0 		= 96,	// Numeric keypad 0 key
	Numpad1 		= 97,	// Numeric keypad 1 key
	Numpad2 		= 98,	// Numeric keypad 2 key
	Numpad3 		= 99,	// Numeric keypad 3 key
	Numpad4 		= 100,	// Numeric keypad 4 key
	Numpad5 		= 101,	// Numeric keypad 5 key
	Numpad6 		= 102,	// Numeric keypad 6 key
	Numpad7 		= 103,	// Numeric keypad 7 key
	Numpad8 		= 104,	// Numeric keypad 8 key
	Numpad9 		= 105,	// Numeric keypad 9 key
	Multiply 		= 106,	// Multiply key
	Add 			= 107,	// Add key
	Separator 		= 108,	// Separator key
	Subtract 		= 109,	// Subtract key
	Decimal 		= 110,	// Decimal key
	Divide 		= 111,	// Divide key
	F1 			= 112,	// F1 key
	F2 			= 113,	// F2 key
	F3 			= 114,	// F3 key
	F4 			= 115,	// F4 key
	F5 			= 116,	// F5 key
	F6 			= 117,	// F6 key
	F7 			= 118,	// F7 key
	F8 			= 119,	// F8 key
	F9 			= 120,	// F9 key
	F10 			= 121,	// F10 key
	F11 			= 122,	// F11 key
	F12 			= 123,	// F12 key
	F13 			= 124,	// F13 key
	F14 			= 125,	// F14 key
	F15 			= 126,	// F15 key
	F16 			= 127,	// F16 key
	F17 			= 128,	// F17 key
	F18 			= 129,	// F18 key
	F19 			= 130,	// F19 key
	F20 			= 131,	// F20 key
	F21 			= 132,	// F21 key
	F22 			= 133,	// F22 key
	F23 			= 134,	// F23 key
	F24 			= 135,	// F24 key
	Numlock 		= 144,	// NUM LOCK key
	Scroll 		= 145,	// SCROLL LOCK key
	LeftShift 		= 160,	// Left SHIFT key
	RightShift 	= 161,	// Right SHIFT key
	LeftControl 	= 162,	// Left CONTROL key
	RightControl	= 163,	// Right CONTROL key
	LeftAlt 		= 164,	// Left Alt key
	RightAlt 		= 165	// Right Alt key
}
