Files
panopainter/engine/event.h

65 lines
888 B
C++

#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;
};