map keys and handle key events on Android and OS X

This commit is contained in:
2017-04-17 19:35:48 +02:00
parent 54082591f1
commit 45cf8c9168
11 changed files with 595 additions and 68 deletions

64
engine/event.h Normal file
View File

@@ -0,0 +1,64 @@
#pragma once
enum class kKey : uint8_t
{
Unknown,
AndroidVolumeUp,
AndroidVolumeDown,
AndroidHome,
KeySpacebar,
KeyE,
};
enum class kEventResult : uint8_t
{
Consumed,
Available,
};
enum class kEventCategory : uint8_t
{
MouseEvent,
KeyEvent,
ButtonEvent,
};
enum class kEventType : uint8_t
{
MouseDownL,
MouseDownR,
MouseMove,
MouseUpL,
MouseUpR,
MouseEnter,
MouseLeave,
MouseScroll,
KeyDown,
KeyUp,
KeyChar,
ButtonDown,
ButtonUp,
};
class Event
{
public:
kEventCategory m_cat;
kEventType m_type;
};
class MouseEvent : public Event
{
public:
MouseEvent() { m_cat = kEventCategory::MouseEvent; }
glm::vec2 m_pos;
float m_scroll_delta;
};
class KeyEvent : public Event
{
public:
KeyEvent() { m_cat = kEventCategory::KeyEvent; }
kKey m_key;
char m_char;
};