map keys and handle key events on Android and OS X
This commit is contained in:
64
engine/event.h
Normal file
64
engine/event.h
Normal 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;
|
||||
};
|
||||
Reference in New Issue
Block a user