LkEngine 0.1.2
 
Loading...
Searching...
No Matches
Keycodes.h
1#pragma once
2
3#include <stdint.h>
4
5#include "LkEngine/Core/Log/Log.h"
6#include "LkEngine/Core/Assert.h"
7
8
9namespace LkEngine {
10
16 enum class EKey : uint16_t
17 {
18 None = 0,
19
20 Space = 32,
21 Apostrophe = 39,
22 Comma = 44,
23 Minus = 45,
24 Period = 46,
25 Slash = 47,
26 D0 = 48,
27 D1 = 49,
28 D2 = 50,
29 D3 = 51,
30 D4 = 52,
31 D5 = 53,
32 D6 = 54,
33 D7 = 55,
34 D8 = 56,
35 D9 = 57,
36 Semicolon = 59,
37 Equal = 61,
38 A = 65,
39 B = 66,
40 C = 67,
41 D = 68,
42 E = 69,
43 F = 70,
44 G = 71,
45 H = 72,
46 I = 73,
47 J = 74,
48 K = 75,
49 L = 76,
50 M = 77,
51 N = 78,
52 O = 79,
53 P = 80,
54 Q = 81,
55 R = 82,
56 S = 83,
57 T = 84,
58 U = 85,
59 V = 86,
60 W = 87,
61 X = 88,
62 Y = 89,
63 Z = 90,
64 LeftBracket = 91,
65 Backslash = 92,
66 RightBracket = 93,
67 GraveAccent = 96,
68 /* Function keys */
69 Escape = 256,
70 Enter = 257,
71 Tab = 258,
72 Backspace = 259,
73 Insert = 260,
74 Delete = 261,
75 Right = 262,
76 Left = 263,
77 Down = 264,
78 Up = 265,
79 PageUp = 266,
80 PageDown = 267,
81 Home = 268,
82 End = 269,
83 CapsLock = 280,
84 ScrollLock = 281,
85 NumLock = 282,
86 PrintScreen = 283,
87 Pause = 284,
88 F1 = 290,
89 F2 = 291,
90 F3 = 292,
91 F4 = 293,
92 F5 = 294,
93 F6 = 295,
94 F7 = 296,
95 F8 = 297,
96 F9 = 298,
97 LeftShift = 340,
98 LeftControl = 341,
99 LeftAlt = 342,
100 LeftSuper = 343,
101 RightShift = 344,
102 RightControl = 345,
103 RightAlt = 346,
104 RightSuper = 347,
105 Menu = 348
106 };
107
113 enum class EKeyState
114 {
115 None = -1,
116 Pressed,
117 Held,
118 Released
119 };
120
121 namespace Enum
122 {
123 FORCEINLINE static constexpr const char* ToString(const EKey Key)
124 {
125 switch (Key)
126 {
127 case EKey::None: return "None";
128 case EKey::Space: return "Space";
129 case EKey::Apostrophe: return "Apostrophe";
130 case EKey::Comma: return "Comma";
131 case EKey::Minus: return "Minus";
132 case EKey::Period: return "Period";
133 case EKey::Slash: return "Slash";
134 case EKey::D0: return "D0";
135 case EKey::D1: return "D1";
136 case EKey::D2: return "D2";
137 case EKey::D3: return "D3";
138 case EKey::D4: return "D4";
139 case EKey::D5: return "D5";
140 case EKey::D6: return "D6";
141 case EKey::D7: return "D7";
142 case EKey::D8: return "D8";
143 case EKey::D9: return "D9";
144 case EKey::Semicolon: return "Semicolon";
145 case EKey::Equal: return "Equal";
146 case EKey::A: return "A";
147 case EKey::B: return "B";
148 case EKey::C: return "C";
149 case EKey::D: return "D";
150 case EKey::E: return "E";
151 case EKey::F: return "F";
152 case EKey::G: return "G";
153 case EKey::H: return "H";
154 case EKey::I: return "I";
155 case EKey::J: return "J";
156 case EKey::K: return "K";
157 case EKey::L: return "L";
158 case EKey::M: return "M";
159 case EKey::N: return "N";
160 case EKey::O: return "O";
161 case EKey::P: return "P";
162 case EKey::Q: return "Q";
163 case EKey::R: return "R";
164 case EKey::S: return "S";
165 case EKey::T: return "T";
166 case EKey::U: return "U";
167 case EKey::V: return "V";
168 case EKey::W: return "W";
169 case EKey::X: return "X";
170 case EKey::Y: return "Y";
171 case EKey::Z: return "Z";
172 case EKey::LeftBracket: return "LeftBracket";
173 case EKey::Backslash: return "Backslash";
174 case EKey::RightBracket: return "RightBracket";
175 case EKey::GraveAccent: return "GraveAccent";
176 case EKey::Escape: return "Escape";
177 case EKey::Enter: return "Enter";
178 case EKey::Tab: return "Tab";
179 case EKey::Backspace: return "Backspace";
180 case EKey::Insert: return "Insert";
181 case EKey::Delete: return "Delete";
182 case EKey::Right: return "Right";
183 case EKey::Left: return "Left";
184 case EKey::Down: return "Down";
185 case EKey::Up: return "Up";
186 case EKey::PageUp: return "PageUp";
187 case EKey::PageDown: return "PageDown";
188 case EKey::Home: return "Home";
189 case EKey::End: return "End";
190 case EKey::CapsLock: return "CapsLock";
191 case EKey::ScrollLock: return "ScrollLock";
192 case EKey::NumLock: return "NumLock";
193 case EKey::PrintScreen: return "PrintScreen";
194 case EKey::Pause: return "Pause";
195 case EKey::F1: return "F1";
196 case EKey::F2: return "F2";
197 case EKey::F3: return "F3";
198 case EKey::F4: return "F4";
199 case EKey::F5: return "F5";
200 case EKey::F6: return "F6";
201 case EKey::F7: return "F7";
202 case EKey::F8: return "F8";
203 case EKey::F9: return "F9";
204 case EKey::LeftShift: return "LeftShift";
205 case EKey::LeftControl: return "LeftControl";
206 case EKey::LeftAlt: return "LeftAlt";
207 case EKey::LeftSuper: return "LeftSuper";
208 case EKey::RightShift: return "RightShift";
209 case EKey::RightControl: return "RightControl";
210 case EKey::RightAlt: return "RightAlt";
211 case EKey::RightSuper: return "RightSuper";
212 case EKey::Menu: return "Menu";
213 }
214
215 LK_CORE_VERIFY(false, "Enum::ToString(EKey) failed with value: {}", static_cast<uint16_t>(Key));
216 return nullptr;
217 }
218
219 FORCEINLINE static constexpr const char* ToString(const EKeyState State)
220 {
221 switch (State)
222 {
223 case EKeyState::None: return "None";
224 case EKeyState::Pressed: return "Pressed";
225 case EKeyState::Held: return "Held";
226 case EKeyState::Released: return "Released";
227 }
228
229 LK_CORE_VERIFY(false, "Enum::ToString(EKeyState) failed with value: {}", static_cast<int>(State));
230 return nullptr;
231 }
232
233 }
234
235}
236
Definition Asset.h:11
EKeyState
Definition Keycodes.h:114
EKey
Definition Keycodes.h:17