Gorgon Game Engine
Keyboard.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <map>
4 #include "../Input.h"
5 
6 namespace Gorgon { namespace Input {
7 
9 namespace Keyboard {
10 
13 
28  namespace Keycodes {
30  constexpr Key Shift = 0b100000001;
31  constexpr Key Control = 0b100000010;
32  constexpr Key Alt = 0b100000100;
33  constexpr Key Meta = 0b100001000;
34 
35  constexpr Key RShift = 0b110000001;
36  constexpr Key RControl = 0b110000010;
37  constexpr Key RAlt = 0b110000100;
38  constexpr Key RMeta = 0b110001000;
39 
40  constexpr Key Home = 0b100010001;
41  constexpr Key End = 0b100010010;
42  constexpr Key Insert = 0b100010011;
43  constexpr Key Delete = 0b100010100;
44  constexpr Key PageUp = 0b100010101;
45  constexpr Key PageDown = 0b100010110;
46 
47  constexpr Key PrintScreen = 0b100010111;
48  constexpr Key Pause = 0b100011000;
49 
50  constexpr Key Menu = 0b100011001;
51 
52  constexpr Key CapsLock = 0b100011010;
53  constexpr Key Numlock = 0b100011011;
54  constexpr Key ScrollLock = 0b100011100;
55 
56  constexpr Key Enter = 0x0D;
57  constexpr Key Tab = 0x0B;
58  constexpr Key Backspace = 0x08;
59  constexpr Key Space = 0x20;
60  constexpr Key Escape = 0x1B;
61 
62  constexpr Key Left = 0b100100000;
63  constexpr Key Up = 0b100100001;
64  constexpr Key Right = 0b100100010;
65  constexpr Key Down = 0b100100011;
66 
67  constexpr Key F1 = 0b101000000 + 1;
68  constexpr Key F2 = 0b101000000 + 2;
69  constexpr Key F3 = 0b101000000 + 3;
70  constexpr Key F4 = 0b101000000 + 4;
71  constexpr Key F5 = 0b101000000 + 5;
72  constexpr Key F6 = 0b101000000 + 6;
73  constexpr Key F7 = 0b101000000 + 7;
74  constexpr Key F8 = 0b101000000 + 8;
75  constexpr Key F9 = 0b101000000 + 9;
76  constexpr Key F10 = 0b101000000 + 10;
77  constexpr Key F11 = 0b101000000 + 11;
78  constexpr Key F12 = 0b101000000 + 12;
79 
80  constexpr Key A = 'A';
81  constexpr Key B = 'B';
82  constexpr Key C = 'C';
83  constexpr Key D = 'D';
84  constexpr Key E = 'E';
85  constexpr Key F = 'F';
86  constexpr Key G = 'G';
87  constexpr Key H = 'H';
88  constexpr Key I = 'I';
89  constexpr Key J = 'J';
90  constexpr Key K = 'K';
91  constexpr Key L = 'L';
92  constexpr Key M = 'M';
93  constexpr Key N = 'N';
94  constexpr Key O = 'O';
95  constexpr Key P = 'P';
96  constexpr Key Q = 'Q';
97  constexpr Key R = 'R';
98  constexpr Key S = 'S';
99  constexpr Key T = 'T';
100  constexpr Key U = 'U';
101  constexpr Key V = 'V';
102  constexpr Key W = 'W';
103  constexpr Key X = 'X';
104  constexpr Key Y = 'Y';
105  constexpr Key Z = 'Z';
106 
107  constexpr Key Number_1 = '1';
108  constexpr Key Number_2 = '2';
109  constexpr Key Number_3 = '3';
110  constexpr Key Number_4 = '4';
111  constexpr Key Number_5 = '5';
112  constexpr Key Number_6 = '6';
113  constexpr Key Number_7 = '7';
114  constexpr Key Number_8 = '8';
115  constexpr Key Number_9 = '9';
116  constexpr Key Number_0 = '0';
117 
118  constexpr Key Numpad_0 = 0b101100000 + 0;
119  constexpr Key Numpad_1 = 0b101100000 + 1;
120  constexpr Key Numpad_2 = 0b101100000 + 2;
121  constexpr Key Numpad_3 = 0b101100000 + 3;
122  constexpr Key Numpad_4 = 0b101100000 + 4;
123  constexpr Key Numpad_5 = 0b101100000 + 5;
124  constexpr Key Numpad_6 = 0b101100000 + 6;
125  constexpr Key Numpad_7 = 0b101100000 + 7;
126  constexpr Key Numpad_8 = 0b101100000 + 8;
127  constexpr Key Numpad_9 = 0b101100000 + 9;
128  constexpr Key Numpad_Decimal= 0b101101010;
129  constexpr Key Numpad_Div = 0b101101011;
130  constexpr Key Numpad_Mult = 0b101101100;
131  constexpr Key Numpad_Enter = 0b101101101;
132  constexpr Key Numpad_Plus = 0b101101110;
133  constexpr Key Numpad_Minus = 0b101101111;
134 
136  constexpr Key OSTransport = 0b100000000000;
137 
139  inline constexpr bool IsEnter(Key key) {
140  return key == Enter || key == Numpad_Enter;
141  }
142 
144  inline constexpr bool IsModifier(Key key) {
145  return
146  key == Shift || key == RShift ||
147  key == Control || key == RControl ||
148  key == Alt || key == RAlt ||
149  key == Meta || key == RMeta;
150  }
151 
155  std::string GetName(Key key);
156  }
158 
162 
164  extern std::map<Key, bool> PressedKeys;
165 
167  class Modifier {
168  public:
170  enum Type {
172  None = 0,
181 
188 
191 
194 
197  };
198 
201  Key(key)
202  { }
203 
205  Modifier &operator =(const Modifier &) = default;
206 
209  bool IsModified() const {
210  return Key != 0 && Key != Shift;
211  }
212 
214  void Remove(Type key) {
215  Key = (Type)(Key & ~key);
216  }
217 
219  void Add(Type key) {
220  Key = (Type)(Key | key);
221  }
222 
224  void Add(Key key) {
225  if(key == Keycodes::Shift || key == Keycodes::RShift) {
226  Key = Type(Key | Shift);
227  }
228  else if(key == Keycodes::Control || key == Keycodes::RControl) {
229  Key = Type(Key | Ctrl);
230  }
231  else if(key == Keycodes::Alt || key == Keycodes::RAlt) {
232  Key = Type(Key | Alt);
233  }
234  else if(key == Keycodes::Meta || key == Keycodes::RMeta) {
235  Key = Type(Key | Meta);
236  }
237  }
238 
240  void Remove(Key key) {
241  if(key == Keycodes::Shift || key == Keycodes::RShift) {
242  Key = Type(Key & ~Shift);
243  }
244  else if(key == Keycodes::Control || key == Keycodes::RControl) {
245  Key = Type(Key & ~Ctrl);
246  }
247  else if(key == Keycodes::Alt || key == Keycodes::RAlt) {
248  Key = Type(Key & ~Alt);
249  }
250  else if(key == Keycodes::Meta || key == Keycodes::RMeta) {
251  Key = Type(Key & ~Meta);
252  }
253  }
254 
257  Key = (Type)(Key | r.Key);
258 
259  return *this;
260  }
261 
264  Key = (Type)(Key & r.Key);
265 
266  return *this;
267  }
268 
270  Modifier operator |(const Modifier &r) const {
271  return {Type(Key | r.Key)};
272  }
273 
275  Modifier operator &(const Modifier &r) const {
276  return {Type(Key & r.Key)};
277  }
278 
280  explicit operator bool() const {
281  return Key != None;
282  }
283 
285  bool operator !() const {
286  return Key == None;
287  }
288 
291  };
292 
293  inline bool operator ==(const Modifier &l, const Modifier &r) {
294  return l.Key == r.Key;
295  }
296 
297  inline bool operator !=(const Modifier &l, const Modifier &r) {
298  return l.Key != r.Key;
299  }
300 
302  extern Modifier CurrentModifier;
303 } } }
Gorgon::Input::Keyboard::Keycodes::F
constexpr Key F
Definition: Keyboard.h:85
Gorgon::Input::Keyboard::Keycodes::Numpad_Enter
constexpr Key Numpad_Enter
Definition: Keyboard.h:131
Gorgon::Input::Keyboard::Keycodes::Meta
constexpr Key Meta
Definition: Keyboard.h:33
Gorgon::Input::Keyboard::operator!=
bool operator!=(const Modifier &l, const Modifier &r)
Definition: Keyboard.h:297
Gorgon::Input::Keyboard::Modifier::None
@ None
No modifier is pressed.
Definition: Keyboard.h:172
Gorgon::Input::Keyboard::Keycodes::Z
constexpr Key Z
Definition: Keyboard.h:105
Gorgon::Input::Keyboard::Keycodes::Enter
constexpr Key Enter
Definition: Keyboard.h:56
Gorgon::Input::Mouse::None
@ None
Definition: Mouse.h:32
Gorgon::Input::Keyboard::Keycodes::U
constexpr Key U
Definition: Keyboard.h:100
Gorgon::Input::Keyboard::Keycodes::G
constexpr Key G
Definition: Keyboard.h:86
Gorgon::Input::Keyboard::Keycodes::PrintScreen
constexpr Key PrintScreen
Definition: Keyboard.h:47
Gorgon::Input::Mouse::X5
@ X5
Definition: Mouse.h:40
Gorgon::Input::Keyboard::Keycodes::Number_0
constexpr Key Number_0
Definition: Keyboard.h:116
Gorgon::Input::Keyboard::Keycodes::Numpad_1
constexpr Key Numpad_1
Definition: Keyboard.h:119
Gorgon::Input::Keyboard::Keycodes::IsEnter
constexpr bool IsEnter(Key key)
Returns if the key is an enter key.
Definition: Keyboard.h:139
Gorgon::Window
This class represents a window.
Definition: Window.h:31
codepair::ucs
unsigned short ucs
Definition: X11Keysym.h:42
Gorgon::Input::Keyboard::Modifier::operator|=
Modifier & operator|=(const Modifier &r)
Or assignment.
Definition: Keyboard.h:256
Gorgon::Input::Keyboard::Keycodes::R
constexpr Key R
Definition: Keyboard.h:97
Gorgon::Input::Keyboard::Key
Gorgon::Input::Key Key
A key on the keyboard.
Definition: Keyboard.h:12
Gorgon::WindowManager::handleinputevent
void handleinputevent(XEvent event, Window &wind)
Definition: Input.cpp:463
Gorgon::Input::Keyboard::Keycodes::F4
constexpr Key F4
Definition: Keyboard.h:70
Gorgon::internal::windowdata::handlers
std::map< Input::Key, ConsumableEvent< Window, Input::Key, bool >::Token > handlers
Definition: X11.h:45
Gorgon::Input::Keyboard::Modifier::Key
Type Key
The modifier key.
Definition: Keyboard.h:290
X11Keysym.h
Gorgon::Input::Keyboard::Keycodes::F8
constexpr Key F8
Definition: Keyboard.h:74
Gorgon::Input::Keyboard::Modifier::operator!
bool operator!() const
Check modifier.
Definition: Keyboard.h:285
Gorgon::Input::Keyboard::Keycodes::Space
constexpr Key Space
Definition: Keyboard.h:59
Gorgon::Input::Keyboard::Keycodes::Q
constexpr Key Q
Definition: Keyboard.h:96
Gorgon::Input::Keyboard::Modifier::Remove
void Remove(Key key)
Removes the given keyboard key from modifiers.
Definition: Keyboard.h:240
Gorgon::Input::Keyboard::Modifier::Add
void Add(Type key)
Adds the given modifier key.
Definition: Keyboard.h:219
Gorgon::Input::Keyboard::Keycodes::CapsLock
constexpr Key CapsLock
Definition: Keyboard.h:52
Gorgon::Input::Keyboard::Modifier::operator&
Modifier operator&(const Modifier &r) const
And operator.
Definition: Keyboard.h:275
Gorgon::Input::Mouse::X2
@ X2
Definition: Mouse.h:37
Gorgon::Input::Keyboard::Keycodes::O
constexpr Key O
Definition: Keyboard.h:94
Gorgon::Input::Keyboard::Keycodes::F11
constexpr Key F11
Definition: Keyboard.h:77
Gorgon::Input::Keyboard::Keycodes::K
constexpr Key K
Definition: Keyboard.h:90
Gorgon::Input::Keyboard::Modifier::CtrlAlt
@ CtrlAlt
Control and alt.
Definition: Keyboard.h:187
Gorgon::Input::AllowCharEvent
bool AllowCharEvent
During keyevent this variable can be set to true, if done so, it will allow character events even if ...
Definition: Input.cpp:11
Gorgon::Input::Keyboard::CurrentModifier
Modifier CurrentModifier
Current keyboard modifier, this is a global value.
Definition: Input.cpp:7
Gorgon::Input::Keyboard::Keycodes::F10
constexpr Key F10
Definition: Keyboard.h:76
Gorgon::Input::Keyboard::Keycodes::RMeta
constexpr Key RMeta
Definition: Keyboard.h:38
Gorgon::Window::CharacterEvent
ConsumableEvent< Window, Input::Keyboard::Char > CharacterEvent
Called when a character is received.
Definition: Window.h:397
Gorgon::Input::Keyboard::Keycodes::S
constexpr Key S
Definition: Keyboard.h:98
Gorgon::Input::Keyboard::Keycodes::RControl
constexpr Key RControl
Definition: Keyboard.h:36
Gorgon::Input::Keyboard::Modifier::Modifier
Modifier(Type key=None)
Constructs a new modifier from the given modifier key.
Definition: Keyboard.h:200
Gorgon::Input::Mouse::X3
@ X3
Definition: Mouse.h:38
Gorgon::Input::Keyboard::Keycodes::T
constexpr Key T
Definition: Keyboard.h:99
Gorgon::Input::Keyboard::Modifier::Shift
@ Shift
Only shift modifier is pressed.
Definition: Keyboard.h:174
Gorgon::WindowManager::internal::getdata
Gorgon::internal::windowdata * getdata(const Window &w)
Definition: Window.cpp:15
Gorgon::Input::Keyboard::Modifier
This class represents a modifier key. These keys can be.
Definition: Keyboard.h:167
Gorgon::Input::Keyboard::Keycodes::Numlock
constexpr Key Numlock
Definition: Keyboard.h:53
Gorgon::Input::Keyboard::Keycodes::Numpad_0
constexpr Key Numpad_0
Definition: Keyboard.h:118
Gorgon::Input::Keyboard::Keycodes::J
constexpr Key J
Definition: Keyboard.h:89
Gorgon::internal::windowdata::pressed
std::set< KeySym > pressed
Definition: X11.h:46
Gorgon::Input::Mouse::X1
@ X1
Definition: Mouse.h:36
Gorgon::Input::Keyboard::Keycodes::Number_5
constexpr Key Number_5
Definition: Keyboard.h:111
Gorgon::Input::Keyboard::Keycodes::F3
constexpr Key F3
Definition: Keyboard.h:69
Gorgon::Input::Keyboard::Keycodes::F6
constexpr Key F6
Definition: Keyboard.h:72
Gorgon::Input::Keyboard::Keycodes::Escape
constexpr Key Escape
Definition: Keyboard.h:60
Gorgon::Input::Keyboard::Keycodes::N
constexpr Key N
Definition: Keyboard.h:93
Gorgon::Input::Keyboard::Keycodes::Numpad_7
constexpr Key Numpad_7
Definition: Keyboard.h:125
Gorgon::Input::Keyboard::Modifier::Alt
@ Alt
Only alt modifier is pressed.
Definition: Keyboard.h:178
Gorgon::Input::Keyboard::Keycodes::H
constexpr Key H
Definition: Keyboard.h:87
Gorgon::Input::Keyboard::Keycodes::X
constexpr Key X
Definition: Keyboard.h:103
Gorgon::Input::Keyboard::Keycodes::Tab
constexpr Key Tab
Definition: Keyboard.h:57
Gorgon::Input::Keyboard::Keycodes::Shift
constexpr Key Shift
Definition: Keyboard.h:30
Gorgon::Window::mouse_up
void mouse_up(Geometry::Point location, Input::Mouse::Button button)
These functions are used internally.
Definition: Window.cpp:120
Gorgon::Window::mouse_event
void mouse_event(Input::Mouse::EventType event, Geometry::Point location, Input::Mouse::Button button, float amount)
These functions are used internally.
Definition: Window.cpp:158
Gorgon::Input::Keyboard::Keycodes::PageUp
constexpr Key PageUp
Definition: Keyboard.h:44
Gorgon::Input::Key
int Key
A type to represent an input key.
Definition: Input.h:14
Gorgon
Root namespace for Gorgon Game Engine.
Definition: Any.h:19
Gorgon::Char
uint32_t Char
Definition: Types.h:46
Gorgon::Input::Keyboard::Keycodes::Numpad_3
constexpr Key Numpad_3
Definition: Keyboard.h:121
Gorgon::Input::Mouse::Scroll_Vert
@ Scroll_Vert
Definition: Mouse.h:24
Gorgon::WindowManager::assertkeys
void assertkeys(Window &wind, Gorgon::internal::windowdata *data)
Definition: Input.cpp:267
Gorgon::Input::Keyboard::Keycodes::Up
constexpr Key Up
Definition: Keyboard.h:63
Gorgon::Input::Mouse::X4
@ X4
Definition: Mouse.h:39
Gorgon::Input::Keyboard::Keycodes::F12
constexpr Key F12
Definition: Keyboard.h:78
Gorgon::Input::Keyboard::Keycodes::Numpad_Mult
constexpr Key Numpad_Mult
Definition: Keyboard.h:130
Gorgon::Input::Keyboard::Keycodes::P
constexpr Key P
Definition: Keyboard.h:95
Gorgon::Input::Keyboard::Modifier::Ctrl
@ Ctrl
Only control modifier is pressed.
Definition: Keyboard.h:176
Gorgon::Input::Keyboard::Keycodes::F1
constexpr Key F1
Definition: Keyboard.h:67
Gorgon::WindowManager::osgetkeyname
std::string osgetkeyname(Input::Keyboard::Key key)
Definition: Input.cpp:48
Gorgon::WindowManager::handlekeypressevent
void handlekeypressevent(XEvent event, Window &wind)
Definition: Input.cpp:320
Gorgon::Input::Keyboard::Keycodes::D
constexpr Key D
Definition: Keyboard.h:83
Gorgon::Input::Keyboard::Keycodes::Number_2
constexpr Key Number_2
Definition: Keyboard.h:108
Gorgon::Input::Keyboard::Modifier::ShiftCtrlAlt
@ ShiftCtrlAlt
Shift control alt together.
Definition: Keyboard.h:190
Gorgon::Input::Keyboard::Keycodes::F7
constexpr Key F7
Definition: Keyboard.h:73
Gorgon::Input::Keyboard::Keycodes::Numpad_9
constexpr Key Numpad_9
Definition: Keyboard.h:127
Gorgon::Input::Keyboard::Keycodes::End
constexpr Key End
Definition: Keyboard.h:41
Gorgon::Input::Keyboard::Modifier::Meta
@ Meta
Only meta/super/window modifier is pressed.
Definition: Keyboard.h:180
Gorgon::Input::Keyboard::Keycodes::IsModifier
constexpr bool IsModifier(Key key)
Returns if the given key is a known modifier.
Definition: Keyboard.h:144
Gorgon::Input::Keyboard::Keycodes::I
constexpr Key I
Definition: Keyboard.h:88
Gorgon::Input::Keyboard::Keycodes::B
constexpr Key B
Definition: Keyboard.h:81
Gorgon::Input::Keyboard::PressedKeys
std::map< Key, bool > PressedKeys
MOVETO -> Window?
Gorgon::Input::Keyboard::Keycodes::OSTransport
constexpr Key OSTransport
Keycodes that are transported from OS.
Definition: Keyboard.h:136
Gorgon::Input::Keyboard::Modifier::Type
Type
A type to represent modifier keys.
Definition: Keyboard.h:170
Gorgon::WindowManager::handlekeyreleaseevent
void handlekeyreleaseevent(XEvent event, Window &wind)
Definition: Input.cpp:372
Gorgon::WindowManager::handlebuttonreleaseevent
void handlebuttonreleaseevent(XEvent event, Window &wind)
Definition: Input.cpp:457
keysym2ucs
long keysym2ucs(KeySym keysym)
Definition: Input.cpp:5
Gorgon::Input::Keyboard::Keycodes::L
constexpr Key L
Definition: Keyboard.h:91
Gorgon::Input::Keyboard::Modifier::Add
void Add(Key key)
Adds the given keyboard key to modifiers.
Definition: Keyboard.h:224
Gorgon::Input::Keyboard::Keycodes::Delete
constexpr Key Delete
Definition: Keyboard.h:43
Gorgon::Input::Keyboard::Keycodes::Numpad_Decimal
constexpr Key Numpad_Decimal
Definition: Keyboard.h:128
Gorgon::Input::Keyboard::Keycodes::Alt
constexpr Key Alt
Definition: Keyboard.h:32
codepair
Definition: X11Keysym.h:40
Gorgon::Input::Keyboard::Keycodes::Numpad_Plus
constexpr Key Numpad_Plus
Definition: Keyboard.h:132
Gorgon::Input::Keyboard::Keycodes::RAlt
constexpr Key RAlt
Definition: Keyboard.h:37
Gorgon::Window::mouse_down
void mouse_down(Geometry::Point location, Input::Mouse::Button button)
These functions are used internally.
Definition: Window.cpp:99
Gorgon::Input::Keyboard::Keycodes::Number_6
constexpr Key Number_6
Definition: Keyboard.h:112
Gorgon::Input::Keyboard::Keycodes::Control
constexpr Key Control
Definition: Keyboard.h:31
Gorgon::Input::Keyboard::Keycodes::W
constexpr Key W
Definition: Keyboard.h:102
Gorgon::Input::Keyboard::Keycodes::Number_4
constexpr Key Number_4
Definition: Keyboard.h:110
Gorgon::Input::Keyboard::Keycodes::F2
constexpr Key F2
Definition: Keyboard.h:68
Gorgon::Input::Keyboard::Modifier::ShiftAlt
@ ShiftAlt
Shift and alt.
Definition: Keyboard.h:185
Gorgon::Input::Mouse::Middle
@ Middle
Definition: Mouse.h:35
Gorgon::Input::Keyboard::Modifier::ShiftCtrl
@ ShiftCtrl
Shift and control.
Definition: Keyboard.h:183
Gorgon::Input::Keyboard::Keycodes::Pause
constexpr Key Pause
Definition: Keyboard.h:48
Gorgon::Input::Keyboard::Keycodes::Numpad_8
constexpr Key Numpad_8
Definition: Keyboard.h:126
Gorgon::Input::Keyboard::Keycodes::Number_9
constexpr Key Number_9
Definition: Keyboard.h:115
Gorgon::Input::Keyboard::Keycodes::V
constexpr Key V
Definition: Keyboard.h:101
Gorgon::Input::Keyboard::Keycodes::M
constexpr Key M
Definition: Keyboard.h:92
Gorgon::Input::Keyboard::Keycodes::C
constexpr Key C
Definition: Keyboard.h:82
Gorgon::Input::Keyboard::Keycodes::Number_3
constexpr Key Number_3
Definition: Keyboard.h:109
Gorgon::Input::Keyboard::Char
Gorgon::Char Char
A Unicode character, use String::Append to append this character to an std::string.
Definition: Keyboard.h:161
Gorgon::Input::Keyboard::Keycodes::Numpad_4
constexpr Key Numpad_4
Definition: Keyboard.h:122
Gorgon::Input::Mouse::Button
Button
Lists the mouse button constants.
Definition: Mouse.h:31
Gorgon::WindowManager::handlebuttonpressevent
void handlebuttonpressevent(XEvent event, Window &wind)
Definition: Input.cpp:445
Gorgon::Input::Keyboard::Keycodes::Numpad_Div
constexpr Key Numpad_Div
Definition: Keyboard.h:129
Gorgon::Input::Keyboard::Keycodes::Right
constexpr Key Right
Definition: Keyboard.h:64
Gorgon::Input::Keyboard::Keycodes::Number_7
constexpr Key Number_7
Definition: Keyboard.h:113
Gorgon::Input::Keyboard::Keycodes::F5
constexpr Key F5
Definition: Keyboard.h:71
Gorgon::Input::Keyboard::Keycodes::Backspace
constexpr Key Backspace
Definition: Keyboard.h:58
Gorgon::Input::Keyboard::Keycodes::RShift
constexpr Key RShift
Definition: Keyboard.h:35
Gorgon::Input::Keyboard::Modifier::operator=
Modifier & operator=(const Modifier &)=default
Assignment operator.
Gorgon::Input::Keyboard::Keycodes::Numpad_5
constexpr Key Numpad_5
Definition: Keyboard.h:123
Gorgon::Input::Keyboard::Modifier::Remove
void Remove(Type key)
Removes the modifier key.
Definition: Keyboard.h:214
Gorgon::Input::Keyboard::Modifier::operator|
Modifier operator|(const Modifier &r) const
Or operator.
Definition: Keyboard.h:270
Gorgon::Input::Keyboard::Keycodes::PageDown
constexpr Key PageDown
Definition: Keyboard.h:45
Gorgon::Input::Keyboard::Keycodes::Number_1
constexpr Key Number_1
Definition: Keyboard.h:107
Gorgon::Input::Keyboard::Keycodes::Numpad_6
constexpr Key Numpad_6
Definition: Keyboard.h:124
X11.h
Gorgon::WindowManager::buttonfromx11
Input::Mouse::Button buttonfromx11(unsigned btn)
Definition: Input.cpp:74
keysymtab
constexpr codepair keysymtab[]
Definition: X11Keysym.h:45
Gorgon::WindowManager::mapx11key
Input::Keyboard::Key mapx11key(KeySym key, unsigned int keycode)
Definition: Input.cpp:100
Gorgon::Input::Keyboard::Keycodes::E
constexpr Key E
Definition: Keyboard.h:84
Gorgon::Input::Keyboard::Keycodes::Numpad_2
constexpr Key Numpad_2
Definition: Keyboard.h:120
Gorgon::Input::Keyboard::Keycodes::F9
constexpr Key F9
Definition: Keyboard.h:75
Gorgon::Input::Keyboard::Modifier::ModCompare
@ ModCompare
Modifier mask to check if the key is modified.
Definition: Keyboard.h:196
Gorgon::Input::Keyboard::Keycodes::Left
constexpr Key Left
Definition: Keyboard.h:62
Gorgon::Input::Keyboard::Keycodes::Y
constexpr Key Y
Definition: Keyboard.h:104
Gorgon::Input::Keyboard::Modifier::operator&=
Modifier & operator&=(const Modifier &r)
And assignment.
Definition: Keyboard.h:263
Gorgon::Input::Keyboard::Keycodes::GetName
std::string GetName(Key key)
Returns the name of the key.
Definition: Keyboard.cpp:11
Keyboard.h
Gorgon::Input::Keyboard::Modifier::ModMask
@ ModMask
Modifier mask to check if the key is modified.
Definition: Keyboard.h:193
Gorgon::Input::Keyboard::Keycodes::A
constexpr Key A
Definition: Keyboard.h:80
Gorgon::Input::Keyboard::Keycodes::Insert
constexpr Key Insert
Definition: Keyboard.h:42
Gorgon::String::AppendUnicode
bool AppendUnicode(std::string &s, Char c)
Appends a unicode code point to the string.
Definition: String.h:609
Gorgon::Input::Keyboard::Keycodes::Numpad_Minus
constexpr Key Numpad_Minus
Definition: Keyboard.h:133
Gorgon::Window::KeyEvent
ConsumableEvent< Window, Input::Key, float > KeyEvent
Called when a key is pressed or released.
Definition: Window.h:392
Gorgon::internal::windowdata
Definition: X11.h:34
Gorgon::Input::Keyboard::operator==
bool operator==(const Modifier &l, const Modifier &r)
Definition: Keyboard.h:293
Gorgon::Input::Keyboard::Keycodes::Home
constexpr Key Home
Definition: Keyboard.h:40
Gorgon::Input::Keyboard::Modifier::IsModified
bool IsModified() const
Checks if this modifier really modifies the key state so that no printable characters can be formed.
Definition: Keyboard.h:209
Gorgon::Input::Keyboard::Keycodes::ScrollLock
constexpr Key ScrollLock
Definition: Keyboard.h:54
Gorgon::Input::Keyboard::Keycodes::Number_8
constexpr Key Number_8
Definition: Keyboard.h:114
Gorgon::Input::Keyboard::Keycodes::Menu
constexpr Key Menu
Definition: Keyboard.h:50
Gorgon::Input::Keyboard::Keycodes::Down
constexpr Key Down
Definition: Keyboard.h:65
Gorgon::Input::Mouse::X6
@ X6
Definition: Mouse.h:41