#pragma once #ifndef EVENT_H_ #define EVENT_H_ #include #include enum class EventType { INPUT, }; struct Event { public: Event(); virtual ~Event() = default; public: virtual EventType GetType() const = 0; public: void Handle(); size_t Id() const; public: bool IsHandled() const; private: bool m_handled; size_t m_id; private: static size_t s_id_counter; }; #endif // EVENT_H_