 |
CUGL 1.3
Cornell University Game Library
|
33 #ifndef __CU_KEYBOARD_H__
34 #define __CU_KEYBOARD_H__
36 #include <cugl/input/CUInput.h>
37 #include <cugl/util/CUTimestamp.h>
54 enum class KeyCode : int {
130 ARROW_DOWN = SDLK_DOWN,
132 ARROW_LEFT = SDLK_LEFT,
134 ARROW_RIGHT = SDLK_RIGHT,
141 BACKSLASH = SDLK_BACKSLASH,
145 EQUALS = SDLK_EQUALS,
147 BACKQUOTE = SDLK_BACKQUOTE,
149 LEFT_BRACKET = SDLK_LEFTBRACKET,
153 PERIOD = SDLK_PERIOD,
155 RIGHT_BRACKET = SDLK_RIGHTBRACKET,
157 SEMICOLON = SDLK_SEMICOLON,
161 BACKSPACE = SDLK_BACKSPACE,
172 ESCAPE = SDLK_ESCAPE,
178 PAGE_DOWN = SDLK_PAGEDOWN,
180 PAGE_UP = SDLK_PAGEUP,
184 RETURN = SDLK_RETURN,
186 ENTER = SDLK_RETURN2,
189 CAPS_LOCK = SDLK_CAPSLOCK,
191 LEFT_ALT = SDLK_LALT,
193 LEFT_CTRL = SDLK_LCTRL,
195 LEFT_SHIFT = SDLK_LSHIFT,
197 LEFT_META = SDLK_LGUI,
199 RIGHT_ALT = SDLK_RALT,
201 RIGHT_CTRL = SDLK_RCTRL,
203 RIGHT_SHIFT = SDLK_RSHIFT,
205 RIGHT_META = SDLK_RGUI,
207 NUMLOCK = SDLK_NUMLOCKCLEAR,
210 KEYPAD_0 = SDLK_KP_0,
212 KEYPAD_1 = SDLK_KP_1,
214 KEYPAD_2 = SDLK_KP_2,
216 KEYPAD_3 = SDLK_KP_3,
218 KEYPAD_4 = SDLK_KP_4,
220 KEYPAD_5 = SDLK_KP_5,
222 KEYPAD_6 = SDLK_KP_6,
224 KEYPAD_7 = SDLK_KP_7,
226 KEYPAD_8 = SDLK_KP_8,
228 KEYPAD_9 = SDLK_KP_9,
230 KEYPAD_CLEAR = SDLK_KP_CLEAR,
232 KEYPAD_EQUALS = SDLK_KP_EQUALS,
234 KEYPAD_DIVIDE = SDLK_KP_DIVIDE,
236 KEYPAD_MULTIPLY = SDLK_KP_MULTIPLY,
238 KEYPAD_MINUS = SDLK_KP_MINUS,
240 KEYPAD_PLUS = SDLK_KP_PLUS,
242 KEYPAD_ENTER = SDLK_KP_ENTER,
258 return (std::hash<int>()(static_cast<int>(k)));
269 enum class KeyCategory {
347 #pragma mark Listener
380 std::unordered_set<KeyCode,KeyCodeHasher>
_current;
387 #pragma mark Constructor
406 virtual void dispose()
override;
409 #pragma mark Data Polling
464 const std::vector<KeyCode>
keySet()
const;
477 #pragma mark Listeners
589 #pragma mark Input Device
621 virtual void queryEvents(std::vector<Uint32>& eventset)
override;
KeyCode keycode
Definition: CUKeyboard.h:298
static KeyCategory keyCategory(KeyCode code)
bool removeKeyDownListener(Uint32 key)
KeyEvent()
Definition: CUKeyboard.h:303
bool keyDown(KeyCode code) const
Definition: CUKeyboard.h:417
unsigned int keyCount() const
Definition: CUKeyboard.h:454
virtual void clearState() override
std::unordered_set< KeyCode, KeyCodeHasher > _previous
Definition: CUKeyboard.h:378
bool keyPressed(KeyCode code) const
Definition: CUKeyboard.h:431
Keyboard()
Definition: CUKeyboard.h:394
bool isListener(Uint32 key) const
Definition: CUTimestamp.h:61
bool addKeyUpListener(Uint32 key, Listener listener)
bool keyReleased(KeyCode code)
Definition: CUKeyboard.h:445
bool addKeyDownListener(Uint32 key, Listener listener)
virtual void dispose() override
virtual void queryEvents(std::vector< Uint32 > &eventset) override
Definition: CUKeyboard.h:293
const Listener getKeyDownListener(Uint32 key) const
std::unordered_map< Uint32, Listener > _downListeners
Definition: CUKeyboard.h:383
KeyEvent(KeyCode code, const Timestamp &stamp)
Definition: CUKeyboard.h:311
const std::vector< KeyCode > keySet() const
Definition: CUKeyboard.h:251
std::size_t operator()(const KeyCode &k) const
Definition: CUKeyboard.h:257
virtual ~Keyboard()
Definition: CUKeyboard.h:399
virtual bool requestFocus(Uint32 key) override
std::unordered_map< Uint32, Listener > _upListeners
Definition: CUKeyboard.h:385
virtual bool updateState(const SDL_Event &event, const Timestamp &stamp) override
Timestamp timestamp
Definition: CUKeyboard.h:296
std::function< void(const KeyEvent &event, bool focus)> Listener
Definition: CUKeyboard.h:373
Definition: CUKeyboard.h:345
const Listener getKeyUpListener(Uint32 key) const
KeyCategory keyCategory()
bool removeKeyUpListener(Uint32 key)
std::unordered_set< KeyCode, KeyCodeHasher > _current
Definition: CUKeyboard.h:380