Nebula
Toggle main menu visibility
Loading...
Searching...
No Matches
key.h
Go to the documentation of this file.
1
#pragma once
2
//------------------------------------------------------------------------------
13
#include "
core/types.h
"
14
#include "
util/string.h
"
15
#include "
util/dictionary.h
"
16
17
//------------------------------------------------------------------------------
18
namespace
Input
19
{
20
class
Key
21
{
22
public
:
24
enum
Code
25
{
26
Back
,
27
Tab
,
28
Clear
,
29
Return
,
30
Shift
,
31
Control
,
32
Menu
,
33
Pause
,
34
Capital
,
35
Escape
,
36
Convert
,
37
NonConvert
,
38
Accept
,
39
ModeChange
,
40
Space
,
41
PageUp
,
42
PageDown
,
43
End
,
44
Home
,
45
Left
,
46
Right
,
47
Up
,
48
Down
,
49
Select
,
50
Print
,
51
Execute
,
52
Snapshot
,
53
Insert
,
54
Delete
,
55
Help
,
56
LeftWindows
,
57
RightWindows
,
58
Apps
,
59
Sleep
,
60
NumPad0
,
61
NumPad1
,
62
NumPad2
,
63
NumPad3
,
64
NumPad4
,
65
NumPad5
,
66
NumPad6
,
67
NumPad7
,
68
NumPad8
,
69
NumPad9
,
70
Multiply
,
71
Add
,
72
Subtract
,
73
Separator
,
74
Decimal
,
75
Divide
,
76
F1
,
77
F2
,
78
F3
,
79
F4
,
80
F5
,
81
F6
,
82
F7
,
83
F8
,
84
F9
,
85
F10
,
86
F11
,
87
F12
,
88
F13
,
89
F14
,
90
F15
,
91
F16
,
92
F17
,
93
F18
,
94
F19
,
95
F20
,
96
F21
,
97
F22
,
98
F23
,
99
F24
,
100
NumLock
,
101
Scroll
,
102
Semicolon
,
103
Slash
,
104
Tilde
,
105
LeftBracket
,
106
RightBracket
,
107
BackSlash
,
108
Quote
,
109
Comma
,
110
Underbar
,
111
Period
,
112
Equality
,
113
LeftShift
,
114
RightShift
,
115
LeftControl
,
116
RightControl
,
117
LeftMenu
,
118
RightMenu
,
119
BrowserBack
,
120
BrowserForward
,
121
BrowserRefresh
,
122
BrowserStop
,
123
BrowserSearch
,
124
BrowserFavorites
,
125
BrowserHome
,
126
VolumeMute
,
127
VolumeDown
,
128
VolumeUp
,
129
MediaNextTrack
,
130
MediaPrevTrack
,
131
MediaStop
,
132
MediaPlayPause
,
133
LaunchMail
,
134
LaunchMediaSelect
,
135
LaunchApp1
,
136
LaunchApp2
,
137
Key0
,
138
Key1
,
139
Key2
,
140
Key3
,
141
Key4
,
142
Key5
,
143
Key6
,
144
Key7
,
145
Key8
,
146
Key9
,
147
A
,
148
B
,
149
C
,
150
D
,
151
E
,
152
F
,
153
G
,
154
H
,
155
I
,
156
J
,
157
K
,
158
L
,
159
M
,
160
N
,
161
O
,
162
P
,
163
Q
,
164
R
,
165
S
,
166
T
,
167
U
,
168
V
,
169
W
,
170
X
,
171
Y
,
172
Z
,
173
174
NumKeyCodes
,
175
InvalidKey
,
176
};
177
179
enum
Group
180
{
181
Letters
,
// (A, B, ..., Z)
182
Numbers
,
// (Key_0, ..., Key_9)
183
NumPad
,
// (NumPad_0, ... NumPad9...+-*/)
184
FunctionKeys
,
// (F1, ... , F24)
185
CursorKeys
,
// (->,... ,<-)
186
HomeBlock
// (Home, End, Prior, Next, Insert, Delete)
187
};
188
190
static
Util::String
ToString
(
Code
code);
192
static
uint
ToDirectInput
(
Code
key);
194
static
uint
ToRocket
(
Code
key);
196
static
Code
FromRocket
(
uint
key);
198
static
char
ToChar
(
Code
key);
200
static
Code
FromString
(
const
Util::String
& str);
202
static
bool
IsValid
(
const
Util::String
& str);
204
static
Util::Array<Key::Code>
KeyCodesByGroup
(
Key::Group
group);
205
private
:
206
static
Util::Dictionary<Util::String, Code>
dict
;
207
static
void
SetupDict
();
208
};
209
210
};
211
//------------------------------------------------------------------------------
Input::Key
Define standard key codes.
Definition
key.h:21
Input::Key::ToDirectInput
static uint ToDirectInput(Code key)
convert to cegui scan codes
Definition
key.cc:179
Input::Key::FromString
static Code FromString(const Util::String &str)
convert from string
Definition
key.cc:731
Input::Key::FromRocket
static Code FromRocket(uint key)
convert to rocket scan codes
Definition
key.cc:501
Input::Key::ToChar
static char ToChar(Code key)
convert to Unicode character (ASCII 0-127 for now)
Definition
key.cc:651
Input::Key::Code
Code
key codes
Definition
key.h:25
Input::Key::BrowserForward
@ BrowserForward
Definition
key.h:120
Input::Key::Key7
@ Key7
Definition
key.h:144
Input::Key::I
@ I
Definition
key.h:155
Input::Key::Accept
@ Accept
Definition
key.h:38
Input::Key::NumPad0
@ NumPad0
Definition
key.h:60
Input::Key::F
@ F
Definition
key.h:152
Input::Key::Execute
@ Execute
Definition
key.h:51
Input::Key::N
@ N
Definition
key.h:160
Input::Key::Left
@ Left
Definition
key.h:45
Input::Key::RightShift
@ RightShift
Definition
key.h:114
Input::Key::Underbar
@ Underbar
Definition
key.h:110
Input::Key::LaunchMail
@ LaunchMail
Definition
key.h:133
Input::Key::LeftMenu
@ LeftMenu
Definition
key.h:117
Input::Key::MediaStop
@ MediaStop
Definition
key.h:131
Input::Key::Comma
@ Comma
Definition
key.h:109
Input::Key::F20
@ F20
Definition
key.h:95
Input::Key::F13
@ F13
Definition
key.h:88
Input::Key::PageUp
@ PageUp
Definition
key.h:41
Input::Key::Snapshot
@ Snapshot
Definition
key.h:52
Input::Key::Right
@ Right
Definition
key.h:46
Input::Key::Pause
@ Pause
Definition
key.h:33
Input::Key::NumPad7
@ NumPad7
Definition
key.h:67
Input::Key::VolumeUp
@ VolumeUp
Definition
key.h:128
Input::Key::Key4
@ Key4
Definition
key.h:141
Input::Key::MediaNextTrack
@ MediaNextTrack
Definition
key.h:129
Input::Key::RightControl
@ RightControl
Definition
key.h:116
Input::Key::ModeChange
@ ModeChange
Definition
key.h:39
Input::Key::Capital
@ Capital
Definition
key.h:34
Input::Key::NumPad8
@ NumPad8
Definition
key.h:68
Input::Key::Down
@ Down
Definition
key.h:48
Input::Key::V
@ V
Definition
key.h:168
Input::Key::R
@ R
Definition
key.h:164
Input::Key::O
@ O
Definition
key.h:161
Input::Key::BrowserBack
@ BrowserBack
Definition
key.h:119
Input::Key::NumPad3
@ NumPad3
Definition
key.h:63
Input::Key::F11
@ F11
Definition
key.h:86
Input::Key::A
@ A
Definition
key.h:147
Input::Key::NumLock
@ NumLock
Definition
key.h:100
Input::Key::Z
@ Z
Definition
key.h:172
Input::Key::MediaPrevTrack
@ MediaPrevTrack
Definition
key.h:130
Input::Key::Control
@ Control
Definition
key.h:31
Input::Key::Key8
@ Key8
Definition
key.h:145
Input::Key::Return
@ Return
Definition
key.h:29
Input::Key::LeftShift
@ LeftShift
Definition
key.h:113
Input::Key::LaunchMediaSelect
@ LaunchMediaSelect
Definition
key.h:134
Input::Key::MediaPlayPause
@ MediaPlayPause
Definition
key.h:132
Input::Key::Help
@ Help
Definition
key.h:55
Input::Key::BackSlash
@ BackSlash
Definition
key.h:107
Input::Key::Space
@ Space
Definition
key.h:40
Input::Key::Tilde
@ Tilde
Definition
key.h:104
Input::Key::S
@ S
Definition
key.h:165
Input::Key::NumPad6
@ NumPad6
Definition
key.h:66
Input::Key::F16
@ F16
Definition
key.h:91
Input::Key::T
@ T
Definition
key.h:166
Input::Key::F14
@ F14
Definition
key.h:89
Input::Key::F6
@ F6
Definition
key.h:81
Input::Key::Y
@ Y
Definition
key.h:171
Input::Key::Apps
@ Apps
Definition
key.h:58
Input::Key::Key3
@ Key3
Definition
key.h:140
Input::Key::Equality
@ Equality
Definition
key.h:112
Input::Key::F21
@ F21
Definition
key.h:96
Input::Key::Insert
@ Insert
Definition
key.h:53
Input::Key::M
@ M
Definition
key.h:159
Input::Key::Escape
@ Escape
Definition
key.h:35
Input::Key::F19
@ F19
Definition
key.h:94
Input::Key::C
@ C
Definition
key.h:149
Input::Key::G
@ G
Definition
key.h:153
Input::Key::NumPad4
@ NumPad4
Definition
key.h:64
Input::Key::NumPad1
@ NumPad1
Definition
key.h:61
Input::Key::F22
@ F22
Definition
key.h:97
Input::Key::Up
@ Up
Definition
key.h:47
Input::Key::Key2
@ Key2
Definition
key.h:139
Input::Key::F9
@ F9
Definition
key.h:84
Input::Key::Select
@ Select
Definition
key.h:49
Input::Key::BrowserSearch
@ BrowserSearch
Definition
key.h:123
Input::Key::Home
@ Home
Definition
key.h:44
Input::Key::Semicolon
@ Semicolon
Definition
key.h:102
Input::Key::Sleep
@ Sleep
Definition
key.h:59
Input::Key::Key5
@ Key5
Definition
key.h:142
Input::Key::F2
@ F2
Definition
key.h:77
Input::Key::VolumeMute
@ VolumeMute
Definition
key.h:126
Input::Key::Subtract
@ Subtract
Definition
key.h:72
Input::Key::LeftBracket
@ LeftBracket
Definition
key.h:105
Input::Key::NumPad2
@ NumPad2
Definition
key.h:62
Input::Key::Delete
@ Delete
Definition
key.h:54
Input::Key::H
@ H
Definition
key.h:154
Input::Key::U
@ U
Definition
key.h:167
Input::Key::Tab
@ Tab
Definition
key.h:27
Input::Key::NumKeyCodes
@ NumKeyCodes
Definition
key.h:174
Input::Key::Shift
@ Shift
Definition
key.h:30
Input::Key::VolumeDown
@ VolumeDown
Definition
key.h:127
Input::Key::Convert
@ Convert
Definition
key.h:36
Input::Key::Separator
@ Separator
Definition
key.h:73
Input::Key::D
@ D
Definition
key.h:150
Input::Key::F12
@ F12
Definition
key.h:87
Input::Key::J
@ J
Definition
key.h:156
Input::Key::F15
@ F15
Definition
key.h:90
Input::Key::F1
@ F1
Definition
key.h:76
Input::Key::LaunchApp1
@ LaunchApp1
Definition
key.h:135
Input::Key::F5
@ F5
Definition
key.h:80
Input::Key::Slash
@ Slash
Definition
key.h:103
Input::Key::Multiply
@ Multiply
Definition
key.h:70
Input::Key::P
@ P
Definition
key.h:162
Input::Key::Add
@ Add
Definition
key.h:71
Input::Key::RightWindows
@ RightWindows
Definition
key.h:57
Input::Key::F23
@ F23
Definition
key.h:98
Input::Key::Divide
@ Divide
Definition
key.h:75
Input::Key::NumPad9
@ NumPad9
Definition
key.h:69
Input::Key::Quote
@ Quote
Definition
key.h:108
Input::Key::F24
@ F24
Definition
key.h:99
Input::Key::Period
@ Period
Definition
key.h:111
Input::Key::F18
@ F18
Definition
key.h:93
Input::Key::Key1
@ Key1
Definition
key.h:138
Input::Key::F4
@ F4
Definition
key.h:79
Input::Key::BrowserStop
@ BrowserStop
Definition
key.h:122
Input::Key::LaunchApp2
@ LaunchApp2
Definition
key.h:136
Input::Key::NonConvert
@ NonConvert
Definition
key.h:37
Input::Key::InvalidKey
@ InvalidKey
Definition
key.h:175
Input::Key::PageDown
@ PageDown
Definition
key.h:42
Input::Key::X
@ X
Definition
key.h:170
Input::Key::LeftWindows
@ LeftWindows
Definition
key.h:56
Input::Key::Decimal
@ Decimal
Definition
key.h:74
Input::Key::Q
@ Q
Definition
key.h:163
Input::Key::Menu
@ Menu
Definition
key.h:32
Input::Key::BrowserRefresh
@ BrowserRefresh
Definition
key.h:121
Input::Key::BrowserHome
@ BrowserHome
Definition
key.h:125
Input::Key::F17
@ F17
Definition
key.h:92
Input::Key::Key9
@ Key9
Definition
key.h:146
Input::Key::K
@ K
Definition
key.h:157
Input::Key::F7
@ F7
Definition
key.h:82
Input::Key::Key0
@ Key0
Definition
key.h:137
Input::Key::Key6
@ Key6
Definition
key.h:143
Input::Key::RightMenu
@ RightMenu
Definition
key.h:118
Input::Key::W
@ W
Definition
key.h:169
Input::Key::Clear
@ Clear
Definition
key.h:28
Input::Key::NumPad5
@ NumPad5
Definition
key.h:65
Input::Key::L
@ L
Definition
key.h:158
Input::Key::F8
@ F8
Definition
key.h:83
Input::Key::F10
@ F10
Definition
key.h:85
Input::Key::Print
@ Print
Definition
key.h:50
Input::Key::End
@ End
Definition
key.h:43
Input::Key::Back
@ Back
Definition
key.h:26
Input::Key::Scroll
@ Scroll
Definition
key.h:101
Input::Key::E
@ E
Definition
key.h:151
Input::Key::RightBracket
@ RightBracket
Definition
key.h:106
Input::Key::B
@ B
Definition
key.h:148
Input::Key::LeftControl
@ LeftControl
Definition
key.h:115
Input::Key::F3
@ F3
Definition
key.h:78
Input::Key::BrowserFavorites
@ BrowserFavorites
Definition
key.h:124
Input::Key::IsValid
static bool IsValid(const Util::String &str)
check if a key string is valid
Definition
key.cc:801
Input::Key::Group
Group
key group
Definition
key.h:180
Input::Key::CursorKeys
@ CursorKeys
Definition
key.h:185
Input::Key::HomeBlock
@ HomeBlock
Definition
key.h:186
Input::Key::Letters
@ Letters
Definition
key.h:181
Input::Key::FunctionKeys
@ FunctionKeys
Definition
key.h:184
Input::Key::NumPad
@ NumPad
Definition
key.h:183
Input::Key::Numbers
@ Numbers
Definition
key.h:182
Input::Key::KeyCodesByGroup
static Util::Array< Key::Code > KeyCodesByGroup(Key::Group group)
get key codes by group
Definition
key.cc:745
Input::Key::ToString
static Util::String ToString(Code code)
convert to string
Definition
key.cc:17
Input::Key::SetupDict
static void SetupDict()
Definition
key.cc:815
Input::Key::dict
static Util::Dictionary< Util::String, Code > dict
Definition
key.h:206
Input::Key::ToRocket
static uint ToRocket(Code key)
convert to rocket scan codes
Definition
key.cc:342
Util::Array
Nebula's dynamic array class.
Definition
array.h:61
Util::Dictionary
A collection of key/value pairs with quick value retrieval by key at roughly O(log n).
Definition
dictionary.h:35
dictionary.h
Input
FIXME!
string.h
Util.String
Nebula's universal string class.
Definition
String.cs:8
types.h
uint
unsigned int uint
Definition
types.h:33
code
input
input
key.h
Generated on
for Nebula. Dark theme by
Tilen Majerle
. All rights reserved.