Files
Aerofoil/GpCommon/GpVOSEvent.h
2019-12-21 18:40:17 -05:00

90 lines
1.1 KiB
C++

#pragma once
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;
namespace GpInputEventTypes
{
enum GpInputEventType
{
kDown,
kUp,
kAuto,
};
}
typedef GpInputEventTypes::GpInputEventType GpInputEventType_t;
namespace GpVOSEventTypes
{
enum GpVOSEventType
{
kInput,
};
}
typedef GpVOSEventTypes::GpVOSEventType GpVOSEventType_t;
struct GpInputEvent
{
union KeyUnion
{
GpKeySpecials::GpKeySpecial m_specialKey;
char m_asciiChar;
};
GpInputEventType_t m_eventType;
GpKeyIDSubset_t m_keyIDSubset;
KeyUnion m_key;
};
struct GpVOSEvent
{
union EventUnion
{
GpInputEvent m_inputEvent;
};
GpVOSEventType_t m_eventType;
};