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
virtual const char * GetName() const =0
void SetHandled(const bool handled) noexcept
bool IsHandled() const noexcept
bool IsInCategory(EventCategory category) const noexcept
virtual std::uint32_t GetCategoryFlags() const =0
virtual EventType GetEventType() const =0