Files
Aerofoil/GpCommon/GpVOSEvent.h

138 lines
1.8 KiB
C
Raw Normal View History

2019-12-21 18:40:17 -05:00
#pragma once
2019-12-24 02:35:24 -05:00
namespace GpKeyModifiers
{
enum GpKeyModifier
{
kShift,
kCtrl,
};
}
2019-12-21 18:40:17 -05:00
namespace GpKeyIDSubsets
{
enum GpKeyIDSubset
{
kASCII,
kSpecial,
kNumPadASCII,
kNumPadSpecial,
kFKey, // Key value is a raw F number
};
}
typedef GpKeyIDSubsets::GpKeyIDSubset GpKeyIDSubset_t;
namespace GpKeySpecials
{
enum GpKeySpecial
{
kEscape,
kPrintScreen,
kScrollLock,
kPause,
kInsert,
kHome,
kPageUp,
kPageDown,
kDelete,
kEnd,
kBackspace,
kCapsLock,
kEnter,
kLeftShift,
kRightShift,
kLeftCtrl,
kRightCtrl,
kLeftAlt,
kRightAlt,
kNumLock,
};
}
typedef GpKeySpecials::GpKeySpecial GpKeySpecial_t;
2019-12-24 02:35:24 -05:00
namespace GpKeyboardInputEventTypes
2019-12-21 18:40:17 -05:00
{
2019-12-24 02:35:24 -05:00
enum GpKeyboardInputEventType
2019-12-21 18:40:17 -05:00
{
kDown,
kUp,
kAuto,
};
}
2019-12-24 02:35:24 -05:00
typedef GpKeyboardInputEventTypes::GpKeyboardInputEventType GpKeyboardInputEventType_t;
2019-12-21 18:40:17 -05:00
2019-12-24 02:35:24 -05:00
struct GpKeyboardInputEvent
2019-12-21 18:40:17 -05:00
{
2019-12-24 02:35:24 -05:00
union KeyUnion
2019-12-21 18:40:17 -05:00
{
2019-12-24 02:35:24 -05:00
GpKeySpecials::GpKeySpecial m_specialKey;
char m_asciiChar;
};
GpKeyboardInputEventType_t m_eventType;
GpKeyIDSubset_t m_keyIDSubset;
KeyUnion m_key;
};
namespace GpMouseEventTypes
{
enum GpMouseEventType
{
kUp,
kDown,
kMove,
kLeave,
2019-12-21 18:40:17 -05:00
};
}
2019-12-24 02:35:24 -05:00
typedef GpMouseEventTypes::GpMouseEventType GpMouseEventType_t;
2019-12-21 18:40:17 -05:00
2019-12-24 02:35:24 -05:00
namespace GpMouseButtons
2019-12-21 18:40:17 -05:00
{
2019-12-24 02:35:24 -05:00
enum GpMouseButton
2019-12-21 18:40:17 -05:00
{
2019-12-24 02:35:24 -05:00
kNone,
kLeft,
kMiddle,
kRight,
kX1,
kX2,
2019-12-21 18:40:17 -05:00
};
2019-12-24 02:35:24 -05:00
}
2019-12-21 18:40:17 -05:00
2019-12-24 02:35:24 -05:00
typedef GpMouseButtons::GpMouseButton GpMouseButton_t;
struct GpMouseInputEvent
{
int32_t m_x;
int32_t m_y;
GpMouseEventType_t m_eventType;
GpMouseButton_t m_button;
2019-12-21 18:40:17 -05:00
};
2019-12-24 02:35:24 -05:00
namespace GpVOSEventTypes
{
enum GpVOSEventType
{
kKeyboardInput,
kMouseInput,
};
}
typedef GpVOSEventTypes::GpVOSEventType GpVOSEventType_t;
2019-12-21 18:40:17 -05:00
struct GpVOSEvent
{
union EventUnion
{
2019-12-24 02:35:24 -05:00
GpKeyboardInputEvent m_keyboardInputEvent;
GpMouseInputEvent m_mouseInputEvent;
2019-12-21 18:40:17 -05:00
};
2019-12-24 02:35:24 -05:00
EventUnion m_event;
2019-12-21 18:40:17 -05:00
GpVOSEventType_t m_eventType;
};