#pragma once #include typedef uint32 KeyCode; enum { KeyCode_Unknown = 0x0u, KeyCode_Unsupported = 0x0u, KeyCode_Return = 0x0Du, KeyCode_Escape = 0x1Bu, KeyCode_Backspace = 0x08u, KeyCode_Tab = 0x09u, KeyCode_Space = 0x20u, KeyCode_ExclamationPoint = 0x21u, KeyCode_DoubleApostrophe = 0x22u, KeyCode_Hash = 0x23u, KeyCode_Dollar = 0x24u, KeyCode_Percent = 0x25u, KeyCode_Ampersand = 0x26u, KeyCode_Apostrophe = 0x27u, KeyCode_LeftParenthesis = 0x28u, KeyCode_RightParenthesis = 0x29u, KeyCode_Asterisk = 0x2Au, KeyCode_Plus = 0x2Bu, KeyCode_Comma = 0x2Cu, KeyCode_Minus = 0x2Du, KeyCode_Period = 0x2Eu, KeyCode_Slash = 0x2Fu, KeyCode_Num0 = 0x30u, KeyCode_Num1 = 0x31u, KeyCode_Num2 = 0x32u, KeyCode_Num3 = 0x33u, KeyCode_Num4 = 0x34u, KeyCode_Num5 = 0x35u, KeyCode_Num6 = 0x36u, KeyCode_Num7 = 0x37u, KeyCode_Num8 = 0x38u, KeyCode_Num9 = 0x39u, KeyCode_Colon = 0x3Au, KeyCode_Semicolon = 0x3Bu, KeyCode_LessThan = 0x3Cu, KeyCode_Equals = 0x3Du, KeyCode_GreaterThan = 0x3Eu, KeyCode_QuestionMark = 0x3Fu, KeyCode_CommercialAt = 0x40u, KeyCode_LeftBracket = 0x5Bu, KeyCode_Backslash = 0x5Cu, KeyCode_RightBracket = 0x5Du, KeyCode_Caret = 0x5Eu, KeyCode_Underscore = 0x5Fu, KeyCode_GraveAccent = 0x60u, KeyCode_A = 0x61u, KeyCode_B = 0x62u, KeyCode_C = 0x63u, KeyCode_D = 0x64u, KeyCode_E = 0x65u, KeyCode_F = 0x66u, KeyCode_G = 0x67u, KeyCode_H = 0x68u, KeyCode_I = 0x69u, KeyCode_J = 0x6Au, KeyCode_K = 0x6Bu, KeyCode_L = 0x6Cu, KeyCode_M = 0x6Du, KeyCode_N = 0x6Eu, KeyCode_O = 0x6Fu, KeyCode_P = 0x70u, KeyCode_Q = 0x71u, KeyCode_R = 0x72u, KeyCode_S = 0x73u, KeyCode_T = 0x74u, KeyCode_U = 0x75u, KeyCode_V = 0x76u, KeyCode_W = 0x77u, KeyCode_X = 0x78u, KeyCode_Y = 0x79u, KeyCode_Z = 0x7Au, KeyCode_LeftBrace = 0x7Bu, KeyCode_Pipe = 0x7Cu, KeyCode_RightBrace = 0x7Du, KeyCode_Tilde = 0x7Eu, KeyCode_Delete = 0x7Fu, KeyCode_PlusMinus = 0xb1u, KeyCode_CapsLock = 0x40000039u, KeyCode_F1 = 0x4000003Au, KeyCode_F2 = 0x4000003Bu, KeyCode_F3 = 0x4000003Cu, KeyCode_F4 = 0x4000003Du, KeyCode_F5 = 0x4000003Eu, KeyCode_F6 = 0x4000003Fu, KeyCode_F7 = 0x40000040u, KeyCode_F8 = 0x40000041u, KeyCode_F9 = 0x40000042u, KeyCode_F10 = 0x40000043u, KeyCode_F11 = 0x40000044u, KeyCode_F12 = 0x40000045u, KeyCode_PrintScreen = 0x40000046u, KeyCode_ScrollLock = 0x40000047u, KeyCode_Pause = 0x40000048u, KeyCode_Insert = 0x40000049u, KeyCode_Home = 0x4000004Au, KeyCode_PageUp = 0x4000004Bu, KeyCode_End = 0x4000004Du, KeyCode_PageDown = 0x4000004Eu, KeyCode_RightArrow = 0x4000004Fu, KeyCode_LeftArrow = 0x40000050u, KeyCode_DownArrow = 0x40000051u, KeyCode_UpArrow = 0x40000052u, KeyCode_NumlockClear = 0x40000053u, KeyCode_KeyPad_Divide = 0x40000054u, KeyCode_KeyPad_Multiply = 0x40000055u, KeyCode_KeyPad_Minus = 0x40000056u, KeyCode_KeyPad_Plus = 0x40000057u, KeyCode_KeyPad_Enter = 0x40000058u, KeyCode_KeyPad_Num1 = 0x40000059u, KeyCode_KeyPad_Num2 = 0x4000005Au, KeyCode_KeyPad_Num3 = 0x4000005Bu, KeyCode_KeyPad_Num4 = 0x4000005Cu, KeyCode_KeyPad_Num5 = 0x4000005Du, KeyCode_KeyPad_Num6 = 0x4000005Eu, KeyCode_KeyPad_Num7 = 0x4000005Fu, KeyCode_KeyPad_Num8 = 0x40000060u, KeyCode_KeyPad_Num9 = 0x40000061u, KeyCode_KeyPad_Num0 = 0x40000062u, KeyCode_KeyPad_Period = 0x40000063u, KeyCode_Power = 0x40000066u, KeyCode_KeyPad_Equals = 0x40000067u, KeyCode_F13 = 0x40000068u, KeyCode_F14 = 0x40000069u, KeyCode_F15 = 0x4000006Au, KeyCode_F16 = 0x4000006Bu, KeyCode_F17 = 0x4000006Cu, KeyCode_F18 = 0x4000006Du, KeyCode_F19 = 0x4000006Eu, KeyCode_F20 = 0x4000006Fu, KeyCode_F21 = 0x40000070u, KeyCode_F22 = 0x40000071u, KeyCode_F23 = 0x40000072u, KeyCode_F24 = 0x40000073u, KeyCode_Mute = 0x4000007Fu, KeyCode_VolumeUp = 0x40000080u, KeyCode_VolumeDown = 0x40000081u, KeyCode_KeyPad_Comma = 0x40000085u, KeyCode_LeftControl = 0x400000E0u, KeyCode_LeftShift = 0x400000E1u, KeyCode_LeftAlt = 0x400000E2u, KeyCode_LeftOSCommand = 0x400000E3u, KeyCode_RightControl = 0x400000E4u, KeyCode_RightShift = 0x400000E5u, KeyCode_RightAlt = 0x400000E6u, KeyCode_RightOSCommand = 0x400000E7u, KeyCode_Sleep = 0x40000102u, KeyCode_WakeUp = 0x40000103u, KeyCode_Media_NextTrack = 0x4000010Bu, KeyCode_Media_PreviousTrack = 0x4000010Cu, KeyCode_Media_Stop = 0x4000010Du, KeyCode_Media_Eject = 0x4000010Eu, KeyCode_Media_PlayPause = 0x4000010Fu, KeyCode_Media_Select = 0x40000110u, }; typedef uint16 KeyMod; enum { KeyMod_None = 0x0000u, KeyMod_LeftShift = 0x0001u, KeyMod_RightShift = 0x0002u, KeyMod_LeftControl = 0x0004u, KeyMod_RightControl = 0x0008u, KeyMod_LeftAlt = 0x0010u, KeyMod_RightAlt = 0x0020u, KeyMod_LeftOSCommand = 0x0040u, KeyMod_RightOSCommand = 0x0080u, KeyMod_NumLock = 0x0100u, KeyMod_CapsLock = 0x0200u, KeyMod_ScrollLock = 0x0400u, KeyMod_Control = KeyMod_LeftControl | KeyMod_RightControl, KeyMod_Shift = KeyMod_LeftShift | KeyMod_RightShift, KeyMod_Alt = KeyMod_LeftAlt | KeyMod_RightAlt, KeyMod_OSCommand = KeyMod_LeftOSCommand | KeyMod_RightOSCommand, };