namespace SteelEngine.Input
{
	public enum KeyCode : uint16
	{
		None = 0,

		// Keyboard
		Backspace,
		Delete,
		Tab,
		Clear,
		Return,
		Pause,
		Escape,
		Space,
		Keypad0,
		Keypad1,
		Keypad2,
		Keypad3,
		Keypad4,
		Keypad5,
		Keypad6,
		Keypad7,
		Keypad8,
		Keypad9,
		KeypadPeriod,
		KeypadDivide,
		KeypadMultiply,
		KeypadMinus,
		KeypadPlus,
		KeypadEnter,
		KeypadEquals,
		UpArrow,
		DownArrow,
		RightArrow,
		LeftArrow,
		Insert,
		Home,
		End,
		PageUp,
		PageDown,
		F1,
		F2,
		F3,
		F4,
		F5,
		F6,
		F7,
		F8,
		F9,
		F10,
		F11,
		F12,
		F13,
		F14,
		F15,
		F16,
		F17,
		F18,
		F19,
		F20,
		F21,
		F22,
		F23,
		F24,
		Alpha0,
		Alpha1,
		Alpha2,
		Alpha3,
		Alpha4,
		Alpha5,
		Alpha6,
		Alpha7,
		Alpha8,
		Alpha9,
		Exclaim,
		DoubleQuote,
		Hash,
		Dollar,
		Percent,
		Ampersand,
		Quote,
		LeftParen,
		RightParen,
		Asterisk,
		Plus,
		Comma,
		Minus,
		Period,
		Slash,
		Colon,
		Semicolon,
		Less,
		Equals,
		Greater,
		Question,
		At,
		LeftBracket,
		Backslash,
		RightBracket,
		Caret,
		Underscore,
		BackQuote,
		A,
		B,
		C,
		D,
		E,
		F,
		G,
		H,
		I,
		J,
		K,
		L,
		M,
		N,
		O,
		P,
		Q,
		R,
		S,
		T,
		U,
		V,
		W,
		X,
		Y,
		Z,
		LeftCurlyBracket,
		Pipe,
		RightCurlyBracket,
		Tilde,
		NumLock,
		CapsLock,
		ScrollLock,
		RightShift,
		LeftShift,
		RightControl,
		LeftControl,
		RightAlt,
		LeftAlt,
		LeftCommand,
		LeftSuper,
		RightCommand,
		RightSuper,
		AltGr,
		Help,
		Print,
		SysReq,
		Menu,

		// Mouse
		Mouse0,
		Mouse1,
		Mouse2,
		Mouse3,
		Mouse4,
		Mouse5,
		Mouse6,
		Mouse7,

		// Gamepad
		GamepadA,
		GamepadB,
		GamepadX,
		GamepadY,
		GamepadLeft,
		GamepadRight,
		GamepadUp,
		GamepadDown,
		GamepadHome,
		GamepadStart,
		GamepadBack,
		GamepadLeftBumper,
		GamepadRightBumper,
		GamepadLeftStick,
		GamepadRightStick,

		MAX
	}	
}
