97 lines
1.4 KiB
C++
97 lines
1.4 KiB
C++
#pragma once
|
|
|
|
enum class kKey : uint8_t
|
|
{
|
|
Unknown,
|
|
AndroidVolumeUp,
|
|
AndroidVolumeDown,
|
|
AndroidHome,
|
|
AndroidBack,
|
|
KeySpacebar,
|
|
KeyE,
|
|
KeyZ,
|
|
KeyAlt,
|
|
KeyCtrl,
|
|
KeyShift,
|
|
KeyTab,
|
|
};
|
|
|
|
enum class kEventResult : uint8_t
|
|
{
|
|
Consumed,
|
|
Available,
|
|
};
|
|
|
|
enum class kEventCategory : uint8_t
|
|
{
|
|
MouseEvent,
|
|
KeyEvent,
|
|
ButtonEvent,
|
|
GestureEvent,
|
|
};
|
|
|
|
enum class kEventType : uint8_t
|
|
{
|
|
MouseDownL,
|
|
MouseDownR,
|
|
MouseMove,
|
|
MouseUpL,
|
|
MouseUpR,
|
|
MouseEnter,
|
|
MouseLeave,
|
|
MouseScroll,
|
|
MouseCancel,
|
|
GestureStart,
|
|
GestureMove,
|
|
GestureEnd,
|
|
KeyDown,
|
|
KeyUp,
|
|
KeyChar,
|
|
ButtonDown,
|
|
ButtonUp,
|
|
};
|
|
|
|
enum class kEventSource : uint8_t
|
|
{
|
|
Mouse,
|
|
Touch,
|
|
Stylus,
|
|
};
|
|
|
|
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_pressure = 0;
|
|
float m_scroll_delta = 0;
|
|
kEventSource m_source = kEventSource::Mouse;
|
|
};
|
|
|
|
class KeyEvent : public Event
|
|
{
|
|
public:
|
|
KeyEvent() { m_cat = kEventCategory::KeyEvent; }
|
|
kKey m_key;
|
|
char m_char;
|
|
};
|
|
|
|
class GestureEvent : public Event
|
|
{
|
|
public:
|
|
GestureEvent() { m_cat = kEventCategory::GestureEvent; }
|
|
float m_distance;
|
|
float m_distance_delta;
|
|
float m_angle;
|
|
float m_angle_delta;
|
|
glm::vec2 m_pos;
|
|
glm::vec2 m_pos_delta;
|
|
};
|