❖
Monad Engine
da02fba2
>
Undercity Codex
_
Loading...
Searching...
No Matches
Key.h
Go to the documentation of this file.
1
/**
2
* @file Key.h
3
* @ingroup mnd_input
4
* @brief Strongly-typed key codes; values mirror GLFW.
5
*
6
* Underlying integer values are deliberately identical to `GLFW_KEY_*`
7
* and `GLFW_MOUSE_BUTTON_*` (USB HID usage codes for letters/digits) so
8
* an `mnd::Key` can be passed straight to GLFW callbacks without a
9
* translation table, while still giving the C++ side type safety.
10
*
11
* @code
12
* if (input.IsKeyDown(mnd::Key::W)) { ... }
13
* if (input.IsMouseButtonPressed(mnd::Key::MouseLeft)) { ... }
14
* @endcode
15
*/
16
17
#pragma once
18
19
#include "
Types.h
"
20
21
namespace
mnd
22
{
23
24
/**
25
* @ingroup mnd_input
26
* @brief Keyboard key + mouse button identifier (GLFW-compatible values).
27
*/
28
enum class
Key
:
i16
29
{
30
Unknown
= -1,
31
32
Space
= 32,
33
Apostrophe
= 39,
34
Comma
= 44,
35
Minus
= 45,
36
Period
= 46,
37
Slash
= 47,
38
39
Num0
= 48,
40
Num1
= 49,
41
Num2
= 50,
42
Num3
= 51,
43
Num4
= 52,
44
Num5
= 53,
45
Num6
= 54,
46
Num7
= 55,
47
Num8
= 56,
48
Num9
= 57,
49
50
Semicolon
= 59,
51
Equal
= 61,
52
53
A
= 65,
54
B
= 66,
55
C
= 67,
56
D
= 68,
57
E
= 69,
58
F
= 70,
59
G
= 71,
60
H
= 72,
61
I
= 73,
62
J
= 74,
63
K
= 75,
64
L
= 76,
65
M
= 77,
66
N
= 78,
67
O
= 79,
68
P
= 80,
69
Q
= 81,
70
R
= 82,
71
S
= 83,
72
T
= 84,
73
U
= 85,
74
V
= 86,
75
W
= 87,
76
X
= 88,
77
Y
= 89,
78
Z
= 90,
79
80
LeftBracket
= 91,
81
Backslash
= 92,
82
RightBracket
= 93,
83
GraveAccent
= 96,
84
85
Escape
= 256,
86
Enter
= 257,
87
Tab
= 258,
88
Backspace
= 259,
89
Insert
= 260,
90
Delete
= 261,
91
Right
= 262,
92
Left
= 263,
93
Down
= 264,
94
Up
= 265,
95
PageUp
= 266,
96
PageDown
= 267,
97
Home
= 268,
98
End
= 269,
99
100
CapsLock
= 280,
101
ScrollLock
= 281,
102
NumLock
= 282,
103
PrintScreen
= 283,
104
Pause
= 284,
105
106
F1
= 290,
107
F2
= 291,
108
F3
= 292,
109
F4
= 293,
110
F5
= 294,
111
F6
= 295,
112
F7
= 296,
113
F8
= 297,
114
F9
= 298,
115
F10
= 299,
116
F11
= 300,
117
F12
= 301,
118
119
Kp0
= 320,
120
Kp1
= 321,
121
Kp2
= 322,
122
Kp3
= 323,
123
Kp4
= 324,
124
Kp5
= 325,
125
Kp6
= 326,
126
Kp7
= 327,
127
Kp8
= 328,
128
Kp9
= 329,
129
KpDecimal
= 330,
130
KpDivide
= 331,
131
KpMultiply
= 332,
132
KpSubtract
= 333,
133
KpAdd
= 334,
134
KpEnter
= 335,
135
KpEqual
= 336,
136
137
LeftShift
= 340,
138
LeftControl
= 341,
139
LeftAlt
= 342,
140
LeftSuper
= 343,
141
RightShift
= 344,
142
RightControl
= 345,
143
RightAlt
= 346,
144
RightSuper
= 347,
145
Menu
= 348,
146
};
147
148
enum class
MouseButton
:
i8
149
{
150
Left
= 0,
151
Right
= 1,
152
Middle
= 2,
153
Btn4
= 3,
154
Btn5
= 4,
155
Btn6
= 5,
156
Btn7
= 6,
157
Btn8
= 7,
158
};
159
160
}
// namespace mnd
Types.h
Engine-wide primitive type aliases and GLM math imports.
mnd::i8
int8_t i8
Signed 8-bit integer.
Definition
Types.h:35
mnd::i16
int16_t i16
Signed 16-bit integer.
Definition
Types.h:36
mnd::Key
Key
Keyboard key + mouse button identifier (GLFW-compatible values).
Definition
Key.h:29
mnd::Key::Escape
@ Escape
mnd::Key::X
@ X
mnd::Key::Num6
@ Num6
mnd::Key::Down
@ Down
mnd::Key::RightSuper
@ RightSuper
mnd::Key::Kp8
@ Kp8
mnd::Key::C
@ C
mnd::Key::Pause
@ Pause
mnd::Key::Period
@ Period
mnd::Key::F6
@ F6
mnd::Key::Z
@ Z
mnd::Key::Up
@ Up
mnd::Key::Kp7
@ Kp7
mnd::Key::RightShift
@ RightShift
mnd::Key::Kp1
@ Kp1
mnd::Key::Slash
@ Slash
mnd::Key::F5
@ F5
mnd::Key::E
@ E
mnd::Key::P
@ P
mnd::Key::Minus
@ Minus
mnd::Key::GraveAccent
@ GraveAccent
mnd::Key::RightBracket
@ RightBracket
mnd::Key::F7
@ F7
mnd::Key::F8
@ F8
mnd::Key::LeftBracket
@ LeftBracket
mnd::Key::Num7
@ Num7
mnd::Key::F3
@ F3
mnd::Key::LeftSuper
@ LeftSuper
mnd::Key::U
@ U
mnd::Key::KpAdd
@ KpAdd
mnd::Key::V
@ V
mnd::Key::Kp5
@ Kp5
mnd::Key::KpDivide
@ KpDivide
mnd::Key::Y
@ Y
mnd::Key::Comma
@ Comma
mnd::Key::Tab
@ Tab
mnd::Key::S
@ S
mnd::Key::W
@ W
mnd::Key::LeftControl
@ LeftControl
mnd::Key::F11
@ F11
mnd::Key::M
@ M
mnd::Key::KpSubtract
@ KpSubtract
mnd::Key::Kp2
@ Kp2
mnd::Key::Num2
@ Num2
mnd::Key::ScrollLock
@ ScrollLock
mnd::Key::Num5
@ Num5
mnd::Key::A
@ A
mnd::Key::Kp6
@ Kp6
mnd::Key::F
@ F
mnd::Key::Num0
@ Num0
mnd::Key::RightControl
@ RightControl
mnd::Key::End
@ End
mnd::Key::Unknown
@ Unknown
mnd::Key::F9
@ F9
mnd::Key::Num8
@ Num8
mnd::Key::Home
@ Home
mnd::Key::CapsLock
@ CapsLock
mnd::Key::N
@ N
mnd::Key::Right
@ Right
mnd::Key::Left
@ Left
mnd::Key::LeftAlt
@ LeftAlt
mnd::Key::Semicolon
@ Semicolon
mnd::Key::LeftShift
@ LeftShift
mnd::Key::PageUp
@ PageUp
mnd::Key::KpEnter
@ KpEnter
mnd::Key::B
@ B
mnd::Key::Num3
@ Num3
mnd::Key::Insert
@ Insert
mnd::Key::K
@ K
mnd::Key::Kp0
@ Kp0
mnd::Key::F10
@ F10
mnd::Key::Kp4
@ Kp4
mnd::Key::Menu
@ Menu
mnd::Key::Apostrophe
@ Apostrophe
mnd::Key::T
@ T
mnd::Key::Num1
@ Num1
mnd::Key::PrintScreen
@ PrintScreen
mnd::Key::H
@ H
mnd::Key::KpDecimal
@ KpDecimal
mnd::Key::Kp3
@ Kp3
mnd::Key::Backspace
@ Backspace
mnd::Key::NumLock
@ NumLock
mnd::Key::L
@ L
mnd::Key::Space
@ Space
mnd::Key::KpEqual
@ KpEqual
mnd::Key::Kp9
@ Kp9
mnd::Key::Num9
@ Num9
mnd::Key::RightAlt
@ RightAlt
mnd::Key::I
@ I
mnd::Key::G
@ G
mnd::Key::Num4
@ Num4
mnd::Key::F1
@ F1
mnd::Key::R
@ R
mnd::Key::F4
@ F4
mnd::Key::F12
@ F12
mnd::Key::PageDown
@ PageDown
mnd::Key::Q
@ Q
mnd::Key::Enter
@ Enter
mnd::Key::O
@ O
mnd::Key::Delete
@ Delete
mnd::Key::Equal
@ Equal
mnd::Key::D
@ D
mnd::Key::Backslash
@ Backslash
mnd::Key::KpMultiply
@ KpMultiply
mnd::Key::F2
@ F2
mnd::Key::J
@ J
mnd
Definition
IdleClip.cpp:13
mnd::MouseButton
MouseButton
Definition
Key.h:149
mnd::MouseButton::Btn7
@ Btn7
mnd::MouseButton::Btn4
@ Btn4
mnd::MouseButton::Btn8
@ Btn8
mnd::MouseButton::Btn5
@ Btn5
mnd::MouseButton::Middle
@ Middle
mnd::MouseButton::Btn6
@ Btn6
engine
source
input
Key.h
Generated by
1.9.8