44 inline std::uint32_t
operator|(
const EventType a,
const EventType b) {
return static_cast<std::uint32_t
>(a) |
static_cast<std::uint32_t
>(b); }
45 inline std::uint32_t
operator&(
const EventType a,
const EventType b) {
return static_cast<std::uint32_t
>(a) &
static_cast<std::uint32_t
>(b); }
59 #define EVENT_CLASS_TYPE(type) \
60 static EventType GetStaticType() { return type; } \
61 virtual EventType GetEventType() const override { return GetStaticType(); } \
62 virtual const char *GetName() const override { return #type; }
63 #define EVENT_CLASS_CATEGORY(category) \
64 virtual std::uint32_t GetCategoryFlags() const override { return static_cast<std::uint32_t>(category); }
std::uint32_t operator|(const EventType a, const EventType b)
std::uint32_t operator&(const EventType a, const EventType b)
std::ostream & operator<<(std::ostream &os, const Event &e)
#define NS_ENIGMA_BEGIN
Enable/Disable Assertions.
virtual std::string ToString() const
void SetHandled(const bool handled) noexcept
bool IsHandled() const noexcept
bool IsInCategory(EventCategory category) const noexcept
virtual std::uint32_t GetCategoryFlags() const =0
virtual const char * GetName() const =0
virtual EventType GetEventType() const =0