Enigma  3.2.0
A Simple, Reliable and Efficient Encryption Tool
KeyCodes.hpp
Go to the documentation of this file.
1 #pragma once
2 #ifndef ENIGMA_KEY_CODES_H
3 #define ENIGMA_KEY_CODES_H
4 
5 #include <Core/Core.hpp>
6 #include <GLFW/glfw3.h>
7 
9 
11 typedef enum class KeyCode : std::uint16_t {
12  Space = GLFW_KEY_SPACE,
13  Apostrophe = GLFW_KEY_APOSTROPHE, /* ' */
14  Comma = GLFW_KEY_COMMA, /* , */
15  Minus = GLFW_KEY_MINUS, /* - */
16  Period = GLFW_KEY_PERIOD, /* . */
17  Slash = GLFW_KEY_SLASH, /* / */
18 
19  D0 = GLFW_KEY_0, /* 0 */
20  D1 = GLFW_KEY_1, /* 1 */
21  D2 = GLFW_KEY_2, /* 2 */
22  D3 = GLFW_KEY_3, /* 3 */
23  D4 = GLFW_KEY_4, /* 4 */
24  D5 = GLFW_KEY_5, /* 5 */
25  D6 = GLFW_KEY_6, /* 6 */
26  D7 = GLFW_KEY_7, /* 7 */
27  D8 = GLFW_KEY_8, /* 8 */
28  D9 = GLFW_KEY_9, /* 9 */
29 
30  Semicolon = GLFW_KEY_SEMICOLON, /* ; */
31  Equal = GLFW_KEY_EQUAL, /* = */
32 
33  A = GLFW_KEY_A,
34  B = GLFW_KEY_B,
35  C = GLFW_KEY_C,
36  D = GLFW_KEY_D,
37  E = GLFW_KEY_E,
38  F = GLFW_KEY_F,
39  G = GLFW_KEY_G,
40  H = GLFW_KEY_H,
41  I = GLFW_KEY_I,
42  J = GLFW_KEY_J,
43  K = GLFW_KEY_K,
44  L = GLFW_KEY_L,
45  M = GLFW_KEY_M,
46  N = GLFW_KEY_N,
47  O = GLFW_KEY_O,
48  P = GLFW_KEY_P,
49  Q = GLFW_KEY_Q,
50  R = GLFW_KEY_R,
51  S = GLFW_KEY_S,
52  T = GLFW_KEY_T,
53  U = GLFW_KEY_U,
54  V = GLFW_KEY_V,
55  W = GLFW_KEY_W,
56  X = GLFW_KEY_X,
57  Y = GLFW_KEY_Y,
58  Z = GLFW_KEY_Z,
59 
60  LeftBracket = GLFW_KEY_LEFT_BRACKET, /* [ */
61  Backslash = GLFW_KEY_BACKSLASH, /* \ */
62  RightBracket = GLFW_KEY_RIGHT_BRACKET, /* ] */
63  GraveAccent = GLFW_KEY_GRAVE_ACCENT, /* ` */
64 
65  World1 = GLFW_KEY_WORLD_1, /* non-US #1 */
66  World2 = GLFW_KEY_WORLD_2, /* non-US #2 */
67 
68  /* Function keys */
69  Escape = GLFW_KEY_ESCAPE,
70  Enter = GLFW_KEY_ENTER, // OR RETURN
71  Tab = GLFW_KEY_TAB,
72  Backspace = GLFW_KEY_BACKSPACE,
73  Insert = GLFW_KEY_INSERT,
74  Delete = GLFW_KEY_DELETE,
75  Right = GLFW_KEY_RIGHT,
76  Left = GLFW_KEY_LEFT,
77  Down = GLFW_KEY_DOWN,
78  Up = GLFW_KEY_UP,
79  PageUp = GLFW_KEY_PAGE_UP,
80  PageDown = GLFW_KEY_PAGE_DOWN,
81  Home = GLFW_KEY_HOME,
82  End = GLFW_KEY_END,
83  CapsLock = GLFW_KEY_CAPS_LOCK,
84  ScrollLock = GLFW_KEY_SCROLL_LOCK,
85  NumLock = GLFW_KEY_NUM_LOCK,
86  PrintScreen = GLFW_KEY_PRINT_SCREEN,
87  Pause = GLFW_KEY_PAUSE,
88  F1 = GLFW_KEY_F1,
89  F2 = GLFW_KEY_F2,
90  F3 = GLFW_KEY_F3,
91  F4 = GLFW_KEY_F4,
92  F5 = GLFW_KEY_F5,
93  F6 = GLFW_KEY_F6,
94  F7 = GLFW_KEY_F7,
95  F8 = GLFW_KEY_F8,
96  F9 = GLFW_KEY_F9,
97  F10 = GLFW_KEY_F10,
98  F11 = GLFW_KEY_F11,
99  F12 = GLFW_KEY_F12,
100  F13 = GLFW_KEY_F13,
101  F14 = GLFW_KEY_F14,
102  F15 = GLFW_KEY_F15,
103  F16 = GLFW_KEY_F16,
104  F17 = GLFW_KEY_F17,
105  F18 = GLFW_KEY_F18,
106  F19 = GLFW_KEY_F19,
107  F20 = GLFW_KEY_F20,
108  F21 = GLFW_KEY_F21,
109  F22 = GLFW_KEY_F22,
110  F23 = GLFW_KEY_F23,
111  F24 = GLFW_KEY_F24,
112  F25 = GLFW_KEY_F25,
113 
114  /* Keypad */
115  KP0 = GLFW_KEY_KP_0,
116  KP1 = GLFW_KEY_KP_1,
117  KP2 = GLFW_KEY_KP_2,
118  KP3 = GLFW_KEY_KP_3,
119  KP4 = GLFW_KEY_KP_4,
120  KP5 = GLFW_KEY_KP_5,
121  KP6 = GLFW_KEY_KP_6,
122  KP7 = GLFW_KEY_KP_7,
123  KP8 = GLFW_KEY_KP_8,
124  KP9 = GLFW_KEY_KP_9,
125  KPDecimal = GLFW_KEY_KP_DECIMAL,
126  KPDivide = GLFW_KEY_KP_DIVIDE,
127  KPMultiply = GLFW_KEY_KP_MULTIPLY,
128  KPSubtract = GLFW_KEY_KP_SUBTRACT,
129  KPAdd = GLFW_KEY_KP_ADD,
130  KPEnter = GLFW_KEY_KP_ENTER,
131  KPEqual = GLFW_KEY_KP_EQUAL,
132 
133  LeftShift = GLFW_KEY_LEFT_SHIFT,
134  LeftControl = GLFW_KEY_LEFT_CONTROL,
135  LeftAlt = GLFW_KEY_LEFT_ALT,
136  LeftSuper = GLFW_KEY_LEFT_SUPER,
137  RightShift = GLFW_KEY_RIGHT_SHIFT,
138  RightControl = GLFW_KEY_RIGHT_CONTROL,
139  RightAlt = GLFW_KEY_RIGHT_ALT,
140  RightSuper = GLFW_KEY_RIGHT_SUPER,
141  Menu = GLFW_KEY_MENU
142 } Key;
143 
144 
145 inline std::ostream& operator<<(std::ostream& os, const KeyCode& keyCode) {
146  return os << static_cast<std::uint16_t>(keyCode);
147 }
148 
149 
150 #define ENIGMA_KEY_SPACE ::Enigma::Key::Space
151 #define ENIGMA_KEY_APOSTROPHE ::Enigma::Key::Apostrophe /* ' */
152 #define ENIGMA_KEY_COMMA ::Enigma::Key::Comma /* , */
153 #define ENIGMA_KEY_MINUS ::Enigma::Key::Minus /* - */
154 #define ENIGMA_KEY_PERIOD ::Enigma::Key::Period /* . */
155 #define ENIGMA_KEY_SLASH ::Enigma::Key::Slash /* / */
156 #define ENIGMA_KEY_0 ::Enigma::Key::D0
157 #define ENIGMA_KEY_1 ::Enigma::Key::D1
158 #define ENIGMA_KEY_2 ::Enigma::Key::D2
159 #define ENIGMA_KEY_3 ::Enigma::Key::D3
160 #define ENIGMA_KEY_4 ::Enigma::Key::D4
161 #define ENIGMA_KEY_5 ::Enigma::Key::D5
162 #define ENIGMA_KEY_6 ::Enigma::Key::D6
163 #define ENIGMA_KEY_7 ::Enigma::Key::D7
164 #define ENIGMA_KEY_8 ::Enigma::Key::D8
165 #define ENIGMA_KEY_9 ::Enigma::Key::D9
166 #define ENIGMA_KEY_SEMICOLON ::Enigma::Key::Semicolon /* ; */
167 #define ENIGMA_KEY_EQUAL ::Enigma::Key::Equal /* = */
168 #define ENIGMA_KEY_A ::Enigma::Key::A
169 #define ENIGMA_KEY_B ::Enigma::Key::B
170 #define ENIGMA_KEY_C ::Enigma::Key::C
171 #define ENIGMA_KEY_D ::Enigma::Key::D
172 #define ENIGMA_KEY_E ::Enigma::Key::E
173 #define ENIGMA_KEY_F ::Enigma::Key::F
174 #define ENIGMA_KEY_G ::Enigma::Key::G
175 #define ENIGMA_KEY_H ::Enigma::Key::H
176 #define ENIGMA_KEY_I ::Enigma::Key::I
177 #define ENIGMA_KEY_J ::Enigma::Key::J
178 #define ENIGMA_KEY_K ::Enigma::Key::K
179 #define ENIGMA_KEY_L ::Enigma::Key::L
180 #define ENIGMA_KEY_M ::Enigma::Key::M
181 #define ENIGMA_KEY_N ::Enigma::Key::N
182 #define ENIGMA_KEY_O ::Enigma::Key::O
183 #define ENIGMA_KEY_P ::Enigma::Key::P
184 #define ENIGMA_KEY_Q ::Enigma::Key::Q
185 #define ENIGMA_KEY_R ::Enigma::Key::R
186 #define ENIGMA_KEY_S ::Enigma::Key::S
187 #define ENIGMA_KEY_T ::Enigma::Key::T
188 #define ENIGMA_KEY_U ::Enigma::Key::U
189 #define ENIGMA_KEY_V ::Enigma::Key::V
190 #define ENIGMA_KEY_W ::Enigma::Key::W
191 #define ENIGMA_KEY_X ::Enigma::Key::X
192 #define ENIGMA_KEY_Y ::Enigma::Key::Y
193 #define ENIGMA_KEY_Z ::Enigma::Key::Z
194 #define ENIGMA_KEY_LEFT_BRACKET ::Enigma::Key::LeftBracket /* [ */
195 #define ENIGMA_KEY_BACKSLASH ::Enigma::Key::Backslash /* \ */
196 #define ENIGMA_KEY_RIGHT_BRACKET ::Enigma::Key::RightBracket /* ] */
197 #define ENIGMA_KEY_GRAVE_ACCENT ::Enigma::Key::GraveAccent /* ` */
198 #define ENIGMA_KEY_WORLD_1 ::Enigma::Key::World1 /* non-US #1 */
199 #define ENIGMA_KEY_WORLD_2 ::Enigma::Key::World2 /* non-US #2 */
200 
201 /* Function keys */
202 #define ENIGMA_KEY_ESCAPE ::Enigma::Key::Escape
203 #define ENIGMA_KEY_ENTER ::Enigma::Key::Enter
204 #define ENIGMA_KEY_TAB ::Enigma::Key::Tab
205 #define ENIGMA_KEY_BACKSPACE ::Enigma::Key::Backspace
206 #define ENIGMA_KEY_INSERT ::Enigma::Key::Insert
207 #define ENIGMA_KEY_DELETE ::Enigma::Key::Delete
208 #define ENIGMA_KEY_RIGHT ::Enigma::Key::Right
209 #define ENIGMA_KEY_LEFT ::Enigma::Key::Left
210 #define ENIGMA_KEY_DOWN ::Enigma::Key::Down
211 #define ENIGMA_KEY_UP ::Enigma::Key::Up
212 #define ENIGMA_KEY_PAGE_UP ::Enigma::Key::PageUp
213 #define ENIGMA_KEY_PAGE_DOWN ::Enigma::Key::PageDown
214 #define ENIGMA_KEY_HOME ::Enigma::Key::Home
215 #define ENIGMA_KEY_END ::Enigma::Key::End
216 #define ENIGMA_KEY_CAPS_LOCK ::Enigma::Key::CapsLock
217 #define ENIGMA_KEY_SCROLL_LOCK ::Enigma::Key::ScrollLock
218 #define ENIGMA_KEY_NUM_LOCK ::Enigma::Key::NumLock
219 #define ENIGMA_KEY_PRINT_SCREEN ::Enigma::Key::PrintScreen
220 #define ENIGMA_KEY_PAUSE ::Enigma::Key::Pause
221 #define ENIGMA_KEY_F1 ::Enigma::Key::F1
222 #define ENIGMA_KEY_F2 ::Enigma::Key::F2
223 #define ENIGMA_KEY_F3 ::Enigma::Key::F3
224 #define ENIGMA_KEY_F4 ::Enigma::Key::F4
225 #define ENIGMA_KEY_F5 ::Enigma::Key::F5
226 #define ENIGMA_KEY_F6 ::Enigma::Key::F6
227 #define ENIGMA_KEY_F7 ::Enigma::Key::F7
228 #define ENIGMA_KEY_F8 ::Enigma::Key::F8
229 #define ENIGMA_KEY_F9 ::Enigma::Key::F9
230 #define ENIGMA_KEY_F10 ::Enigma::Key::F10
231 #define ENIGMA_KEY_F11 ::Enigma::Key::F11
232 #define ENIGMA_KEY_F12 ::Enigma::Key::F12
233 #define ENIGMA_KEY_F13 ::Enigma::Key::F13
234 #define ENIGMA_KEY_F14 ::Enigma::Key::F14
235 #define ENIGMA_KEY_F15 ::Enigma::Key::F15
236 #define ENIGMA_KEY_F16 ::Enigma::Key::F16
237 #define ENIGMA_KEY_F17 ::Enigma::Key::F17
238 #define ENIGMA_KEY_F18 ::Enigma::Key::F18
239 #define ENIGMA_KEY_F19 ::Enigma::Key::F19
240 #define ENIGMA_KEY_F20 ::Enigma::Key::F20
241 #define ENIGMA_KEY_F21 ::Enigma::Key::F21
242 #define ENIGMA_KEY_F22 ::Enigma::Key::F22
243 #define ENIGMA_KEY_F23 ::Enigma::Key::F23
244 #define ENIGMA_KEY_F24 ::Enigma::Key::F24
245 #define ENIGMA_KEY_F25 ::Enigma::Key::F25
246 
247 /* Keypad */
248 #define ENIGMA_KEY_KP_0 ::Enigma::Key::KP0
249 #define ENIGMA_KEY_KP_1 ::Enigma::Key::KP1
250 #define ENIGMA_KEY_KP_2 ::Enigma::Key::KP2
251 #define ENIGMA_KEY_KP_3 ::Enigma::Key::KP3
252 #define ENIGMA_KEY_KP_4 ::Enigma::Key::KP4
253 #define ENIGMA_KEY_KP_5 ::Enigma::Key::KP5
254 #define ENIGMA_KEY_KP_6 ::Enigma::Key::KP6
255 #define ENIGMA_KEY_KP_7 ::Enigma::Key::KP7
256 #define ENIGMA_KEY_KP_8 ::Enigma::Key::KP8
257 #define ENIGMA_KEY_KP_9 ::Enigma::Key::KP9
258 #define ENIGMA_KEY_KP_DECIMAL ::Enigma::Key::KPDecimal
259 #define ENIGMA_KEY_KP_DIVIDE ::Enigma::Key::KPDivide
260 #define ENIGMA_KEY_KP_MULTIPLY ::Enigma::Key::KPMultiply
261 #define ENIGMA_KEY_KP_SUBTRACT ::Enigma::Key::KPSubtract
262 #define ENIGMA_KEY_KP_ADD ::Enigma::Key::KPAdd
263 #define ENIGMA_KEY_KP_ENTER ::Enigma::Key::KPEnter
264 #define ENIGMA_KEY_KP_EQUAL ::Enigma::Key::KPEqual
265 
266 #define ENIGMA_KEY_LEFT_SHIFT ::Enigma::Key::LeftShift
267 #define ENIGMA_KEY_LEFT_CONTROL ::Enigma::Key::LeftControl
268 #define ENIGMA_KEY_LEFT_ALT ::Enigma::Key::LeftAlt
269 #define ENIGMA_KEY_LEFT_SUPER ::Enigma::Key::LeftSuper
270 #define ENIGMA_KEY_RIGHT_SHIFT ::Enigma::Key::RightShift
271 #define ENIGMA_KEY_RIGHT_CONTROL ::Enigma::Key::RightControl
272 #define ENIGMA_KEY_RIGHT_ALT ::Enigma::Key::RightAlt
273 #define ENIGMA_KEY_RIGHT_SUPER ::Enigma::Key::RightSuper
274 #define ENIGMA_KEY_MENU ::Enigma::Key::Menu
275 
276 
278 
279 #endif // !ENIGMA_KEY_CODES_H
KeyCode
Definition: KeyCodes.hpp:11
@ RightBracket
@ RightControl
NS_ENIGMA_BEGIN enum KeyCode Key
std::ostream & operator<<(std::ostream &os, const KeyCode &keyCode)
Definition: KeyCodes.hpp:145
#define NS_ENIGMA_BEGIN
Enable/Disable Assertions.
Definition: Macros.hpp:13
#define NS_ENIGMA_END
Definition: Macros.hpp:14