34 #ifndef __CU_KEYBOARD_H__
35 #define __CU_KEYBOARD_H__
37 #include <cugl/input/CUInput.h>
38 #include <cugl/util/CUTimestamp.h>
187 ENTER = SDLK_RETURN2,
253 std::size_t operator()(
const KeyCode& k)
const {
254 return (std::hash<int>()(static_cast<int>(k)));
308 keycode = code; timestamp = stamp;
322 #pragma mark KeyListener
349 typedef std::function<void(const KeyEvent& event, bool focus)>
KeyListener;
377 std::unordered_set<KeyCode,KeyCodeHasher>
_current;
384 #pragma mark Constructor
403 virtual void dispose()
override;
406 #pragma mark Data Polling
415 return _current.find(code) != _current.end();
429 return _current.find(code) != _current.end() && _previous.find(code) == _previous.end();
443 return _current.find(code) == _current.end() && _previous.find(code) != _previous.end();
451 unsigned int keyCount()
const {
return (
unsigned int)_current.size(); }
461 const std::vector<KeyCode>
keySet()
const;
474 #pragma mark Listeners
586 #pragma mark Input Device
618 virtual void queryEvents(std::vector<Uint32>& eventset)
override;
KeyCategory
Definition: CUKeyboard.h:265
bool removeKeyDownListener(Uint32 key)
const KeyListener getKeyUpListener(Uint32 key) const
Keyboard()
Definition: CUKeyboard.h:391
bool keyDown(KeyCode code) const
Definition: CUKeyboard.h:414
static KeyCategory keyCategory(KeyCode code)
Definition: CUTimestamp.h:61
bool isListener(Uint32 key) const
unsigned int keyCount() const
Definition: CUKeyboard.h:451
Definition: CUKeyboard.h:252
bool keyPressed(KeyCode code) const
Definition: CUKeyboard.h:428
KeyEvent()
Definition: CUKeyboard.h:299
bool addKeyDownListener(Uint32 key, KeyListener listener)
std::function< void(const KeyEvent &event, bool focus)> KeyListener
Definition: CUKeyboard.h:349
virtual bool updateState(const SDL_Event &event, const Timestamp &stamp) override
Timestamp timestamp
Definition: CUKeyboard.h:292
std::unordered_set< KeyCode, KeyCodeHasher > _current
Definition: CUKeyboard.h:377
KeyCode keycode
Definition: CUKeyboard.h:294
KeyCode
Definition: CUKeyboard.h:55
std::unordered_set< KeyCode, KeyCodeHasher > _previous
Definition: CUKeyboard.h:375
const KeyListener getKeyDownListener(Uint32 key) const
Definition: CUKeyboard.h:289
std::unordered_map< Uint32, KeyListener > _downListeners
Definition: CUKeyboard.h:380
std::unordered_map< Uint32, KeyListener > _upListeners
Definition: CUKeyboard.h:382
bool removeKeyUpListener(Uint32 key)
KeyCategory keyCategory()
bool addKeyUpListener(Uint32 key, KeyListener listener)
virtual void queryEvents(std::vector< Uint32 > &eventset) override
const std::vector< KeyCode > keySet() const
virtual ~Keyboard()
Definition: CUKeyboard.h:396
Definition: CUAnimationNode.h:52
Definition: CUKeyboard.h:371
virtual bool requestFocus(Uint32 key) override
KeyEvent(KeyCode code, const Timestamp &stamp)
Definition: CUKeyboard.h:307
virtual void dispose() override
bool keyReleased(KeyCode code)
Definition: CUKeyboard.h:442
virtual void clearState() override