1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
|
#pragma once
#include <unordered_map>
namespace crepe {
//! Enumeration for mouse button inputs, including standard and extended buttons.
enum class MouseButton {
NONE = 0, //!< No mouse button input.
LEFT_MOUSE = 1, //!< Left mouse button.
RIGHT_MOUSE = 2, //!< Right mouse button.
MIDDLE_MOUSE = 3, //!< Middle mouse button (scroll wheel press).
X1_MOUSE = 4, //!< First extended mouse button.
X2_MOUSE = 5, //!< Second extended mouse button.
SCROLL_UP = 6, //!< Scroll wheel upward movement.
SCROLL_DOWN = 7, //!< Scroll wheel downward movement.
};
//! Enumeration for keyboard key inputs, including printable characters, function keys, and keypad keys.
typedef enum {
NONE = 0, //!< No key input.
SPACE = 32, //!< Spacebar.
APOSTROPHE = 39, //!< Apostrophe (').
COMMA = 44, //!< Comma (,).
MINUS = 45, //!< Minus (-).
PERIOD = 46, //!< Period (.).
SLASH = 47, //!< Slash (/).
D0 = 48, //!< Digit 0.
D1 = 49, //!< Digit 1.
D2 = 50, //!< Digit 2.
D3 = 51, //!< Digit 3.
D4 = 52, //!< Digit 4.
D5 = 53, //!< Digit 5.
D6 = 54, //!< Digit 6.
D7 = 55, //!< Digit 7.
D8 = 56, //!< Digit 8.
D9 = 57, //!< Digit 9.
SEMICOLON = 59, //!< Semicolon (;).
EQUAL = 61, //!< Equal sign (=).
A = 65, //!< Key 'A'.
B = 66, //!< Key 'B'.
C = 67, //!< Key 'C'.
D = 68, //!< Key 'D'.
E = 69, //!< Key 'E'.
F = 70, //!< Key 'F'.
G = 71, //!< Key 'G'.
H = 72, //!< Key 'H'.
I = 73, //!< Key 'I'.
J = 74, //!< Key 'J'.
K = 75, //!< Key 'K'.
L = 76, //!< Key 'L'.
M = 77, //!< Key 'M'.
N = 78, //!< Key 'N'.
O = 79, //!< Key 'O'.
P = 80, //!< Key 'P'.
Q = 81, //!< Key 'Q'.
R = 82, //!< Key 'R'.
S = 83, //!< Key 'S'.
T = 84, //!< Key 'T'.
U = 85, //!< Key 'U'.
V = 86, //!< Key 'V'.
W = 87, //!< Key 'W'.
X = 88, //!< Key 'X'.
Y = 89, //!< Key 'Y'.
Z = 90, //!< Key 'Z'.
LEFT_BRACKET = 91, //!< Left bracket ([).
BACKSLASH = 92, //!< Backslash (\).
RIGHT_BRACKET = 93, //!< Right bracket (]).
GRAVE_ACCENT = 96, //!< Grave accent (`).
WORLD1 = 161, //!< Non-US key #1.
WORLD2 = 162, //!< Non-US key #2.
ESCAPE = 256, //!< Escape key.
ENTER = 257, //!< Enter key.
TAB = 258, //!< Tab key.
BACKSPACE = 259, //!< Backspace key.
INSERT = 260, //!< Insert key.
DELETE = 261, //!< Delete key.
RIGHT = 262, //!< Right arrow key.
LEFT = 263, //!< Left arrow key.
DOWN = 264, //!< Down arrow key.
UP = 265, //!< Up arrow key.
PAGE_UP = 266, //!< Page Up key.
PAGE_DOWN = 267, //!< Page Down key.
HOME = 268, //!< Home key.
END = 269, //!< End key.
CAPS_LOCK = 280, //!< Caps Lock key.
SCROLL_LOCK = 281, //!< Scroll Lock key.
NUM_LOCK = 282, //!< Num Lock key.
PRINT_SCREEN = 283, //!< Print Screen key.
PAUSE = 284, //!< Pause key.
/**
* \name Function keys (F1-F25).
* \{
*/
F1 = 290,
F2 = 291,
F3 = 292,
F4 = 293,
F5 = 294,
F6 = 295,
F7 = 296,
F8 = 297,
F9 = 298,
F10 = 299,
F11 = 300,
F12 = 301,
F13 = 302,
F14 = 303,
F15 = 304,
F16 = 305,
F17 = 306,
F18 = 307,
F19 = 308,
F20 = 309,
F21 = 310,
F22 = 311,
F23 = 312,
F24 = 313,
F25 = 314,
/// \}
/**
* \name Keypad digits and operators.
* \{
*/
KP0 = 320,
KP1 = 321,
KP2 = 322,
KP3 = 323,
KP4 = 324,
KP5 = 325,
KP6 = 326,
KP7 = 327,
KP8 = 328,
KP9 = 329,
KP_DECIMAL = 330,
KP_DIVIDE = 331,
KP_MULTIPLY = 332,
KP_SUBTRACT = 333,
KP_ADD = 334,
KP_ENTER = 335,
KP_EQUAL = 336,
/// \}
/**
* \name Modifier keys.
* \{
*/
LEFT_SHIFT = 340,
LEFT_CONTROL = 341,
LEFT_ALT = 342,
LEFT_SUPER = 343,
RIGHT_SHIFT = 344,
RIGHT_CONTROL = 345,
RIGHT_ALT = 346,
RIGHT_SUPER = 347,
/// \}
MENU = 348, //!< Menu key.
} Keycode;
} // namespace crepe
|