31#define EVENT_CLASS_TYPE(type) static EventType GetStaticType() { return EventType::type; }\
32 virtual EventType GetEventType() const override { return GetStaticType(); }\
33 virtual const char* GetName() const override { return #type; }
35#define EVENT_CLASS_CATEGORY(category) virtual int GetCategoryFlags() const override { return category; }
59 using EventFn = std::function<bool(T&)>;
bool Dispatch(EventFn< T > func)
EventDispatcher(Event &event)
bool IsInCategory(EventCategory category)
virtual std::string ToString() const
virtual EventType GetEventType() const =0
virtual const char * GetName() const =0
virtual int GetCategoryFlags() const =0
std::ostream & operator<<(std::ostream &os, const Event &e)
@ EventCategoryApplication
@ EventCategoryGameContext
@ EventCategoryMouseButton