Initial commit
This commit is contained in:
63
keyhandler.h
Normal file
63
keyhandler.h
Normal file
@ -0,0 +1,63 @@
|
||||
#ifndef KEYHANDLER_H
|
||||
#define KEYHANDLER_H
|
||||
|
||||
#include <string>
|
||||
|
||||
enum class SpecialKey
|
||||
{
|
||||
NONE,
|
||||
|
||||
UP,
|
||||
DOWN,
|
||||
LEFT,
|
||||
RIGHT,
|
||||
HOME,
|
||||
END,
|
||||
RETURN,
|
||||
ESCAPE
|
||||
};
|
||||
|
||||
enum KeyModifiers
|
||||
{
|
||||
KM_NONE = 0,
|
||||
|
||||
KM_LSHIFT = 0x1,
|
||||
KM_RSHIFT = 0x2,
|
||||
KM_SHIFT = KM_LSHIFT,
|
||||
KM_SHIFT_MASK = KM_LSHIFT | KM_RSHIFT,
|
||||
|
||||
KM_LCTRL = 0x4,
|
||||
KM_RCTRL = 0x8,
|
||||
KM_CTRL = KM_LCTRL,
|
||||
KM_CTRL_MASK = KM_LCTRL | KM_RCTRL,
|
||||
|
||||
KM_LALT = 0x10,
|
||||
KM_RALT = 0x20,
|
||||
KM_ALT = KM_LALT,
|
||||
KM_ALT_MASK = KM_LALT | KM_RALT,
|
||||
|
||||
KM_LMETA = 0x40,
|
||||
KM_RMETA = 0x80,
|
||||
KM_META = KM_LMETA,
|
||||
KM_META_MASK = KM_LMETA | KM_RMETA,
|
||||
};
|
||||
|
||||
class KeyHandler
|
||||
{
|
||||
public:
|
||||
KeyHandler() : m_paused(false) { }
|
||||
virtual ~KeyHandler();
|
||||
|
||||
virtual void Key(SpecialKey key, KeyModifiers mods = KeyModifiers::KM_NONE);
|
||||
virtual void Key(char key, KeyModifiers mods = KeyModifiers::KM_NONE);
|
||||
|
||||
void TogglePaused();
|
||||
|
||||
protected:
|
||||
void WaitUntilNotPaused();
|
||||
|
||||
private:
|
||||
volatile bool m_paused;
|
||||
};
|
||||
|
||||
#endif // KEYHANDLER_H
|
Reference in New Issue
Block a user