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