diff --git a/modules/input/include/input/events/char.hpp b/modules/input/include/input/events/char.hpp index 2698c70..b692105 100644 --- a/modules/input/include/input/events/char.hpp +++ b/modules/input/include/input/events/char.hpp @@ -24,9 +24,15 @@ public: return ss.str(); } - event_type(SetChar); + [[nodiscard]] auto get_event_type() const -> EventType override + { + return ::lt::EventType::SetChar; + } - event_category(InputEventCategory | KeyboardEventCategory); + [[nodiscard]] auto has_category(EventCategory category) const -> bool override + { + return static_cast(InputEventCategory | KeyboardEventCategory) & category; + } private: const unsigned int m_character; diff --git a/modules/input/include/input/events/event.hpp b/modules/input/include/input/events/event.hpp index 80239a6..a3ca32b 100644 --- a/modules/input/include/input/events/event.hpp +++ b/modules/input/include/input/events/event.hpp @@ -34,18 +34,6 @@ enum EventCategory : uint8_t MouseEventCategory = bit(3), }; -#define event_type(type) \ - EventType get_event_type() const override \ - { \ - return ::lt::EventType::type; \ - } - -#define event_category(eCategory) \ - inline bool has_category(EventCategory category) const override \ - { \ - return (eCategory) & category; \ - } - class Event { public: diff --git a/modules/input/include/input/events/keyboard.hpp b/modules/input/include/input/events/keyboard.hpp index 728c025..ba0be2e 100644 --- a/modules/input/include/input/events/keyboard.hpp +++ b/modules/input/include/input/events/keyboard.hpp @@ -29,7 +29,10 @@ public: return ::lt::EventType::KeyPressed; } - event_category(InputEventCategory | KeyboardEventCategory); + [[nodiscard]] auto has_category(EventCategory category) const -> bool override + { + return static_cast(InputEventCategory | KeyboardEventCategory) & category; + } private: const int m_key; @@ -54,9 +57,15 @@ public: return ss.str(); } - event_type(KeyRepeated); + [[nodiscard]] auto get_event_type() const -> EventType override + { + return ::lt::EventType::KeyRepeated; + } - event_category(InputEventCategory | KeyboardEventCategory); + [[nodiscard]] auto has_category(EventCategory category) const -> bool override + { + return static_cast(InputEventCategory | KeyboardEventCategory) & category; + } private: const int m_key; @@ -81,9 +90,15 @@ public: return ss.str(); } - event_type(KeyReleased); + [[nodiscard]] auto get_event_type() const -> EventType override + { + return ::lt::EventType::KeyReleased; + } - event_category(InputEventCategory | KeyboardEventCategory); + [[nodiscard]] auto has_category(EventCategory category) const -> bool override + { + return static_cast(InputEventCategory | KeyboardEventCategory) & category; + } private: const int m_key; diff --git a/modules/input/include/input/events/mouse.hpp b/modules/input/include/input/events/mouse.hpp index 31cce09..77b4d8e 100644 --- a/modules/input/include/input/events/mouse.hpp +++ b/modules/input/include/input/events/mouse.hpp @@ -35,9 +35,15 @@ public: return ss.str(); } - event_type(MouseMoved); + [[nodiscard]] auto get_event_type() const -> EventType override + { + return ::lt::EventType::MouseMoved; + } - event_category(InputEventCategory | MouseEventCategory); + [[nodiscard]] auto has_category(EventCategory category) const -> bool override + { + return static_cast(InputEventCategory | MouseEventCategory) & category; + } private: const glm::vec2 m_position; @@ -62,9 +68,15 @@ public: return ss.str(); } - event_type(WheelScrolled); + [[nodiscard]] auto get_event_type() const -> EventType override + { + return ::lt::EventType::WheelScrolled; + } - event_category(InputEventCategory | MouseEventCategory); + [[nodiscard]] auto has_category(EventCategory category) const -> bool override + { + return static_cast(InputEventCategory | MouseEventCategory) & category; + } private: const float m_offset; @@ -89,9 +101,15 @@ public: return ss.str(); } - event_type(ButtonPressed); + [[nodiscard]] auto get_event_type() const -> EventType override + { + return ::lt::EventType::ButtonPressed; + } - event_category(InputEventCategory | MouseEventCategory); + [[nodiscard]] auto has_category(EventCategory category) const -> bool override + { + return static_cast(InputEventCategory | MouseEventCategory) & category; + } private: const int m_button; @@ -116,9 +134,15 @@ public: return ss.str(); } - event_type(ButtonReleased); + [[nodiscard]] auto get_event_type() const -> EventType override + { + return ::lt::EventType::ButtonReleased; + } - event_category(InputEventCategory | MouseEventCategory); + [[nodiscard]] auto has_category(EventCategory category) const -> bool override + { + return static_cast(InputEventCategory | MouseEventCategory) & category; + } private: const int m_button; diff --git a/modules/input/include/input/events/window.hpp b/modules/input/include/input/events/window.hpp index 7a8a8ab..40b65ee 100644 --- a/modules/input/include/input/events/window.hpp +++ b/modules/input/include/input/events/window.hpp @@ -14,9 +14,15 @@ public: return "WindowClosedEvent"; } - event_type(WindowClosed); + [[nodiscard]] auto get_event_type() const -> EventType override + { + return ::lt::EventType::WindowClosed; + } - event_category(WindowEventCategory); + [[nodiscard]] auto has_category(EventCategory category) const -> bool override + { + return static_cast(WindowEventCategory) & category; + } }; class WindowMovedEvent: public Event @@ -39,9 +45,15 @@ public: ; } - event_type(WindowMoved); + [[nodiscard]] auto get_event_type() const -> EventType override + { + return ::lt::EventType::WindowMoved; + } - event_category(WindowEventCategory); + [[nodiscard]] auto has_category(EventCategory category) const -> bool override + { + return static_cast(WindowEventCategory) & category; + } private: const glm::ivec2 m_position; @@ -66,9 +78,15 @@ public: return ss.str(); } - event_type(WindowResized); + [[nodiscard]] auto get_event_type() const -> EventType override + { + return ::lt::EventType::WindowResized; + } - event_category(WindowEventCategory); + [[nodiscard]] auto has_category(EventCategory category) const -> bool override + { + return static_cast(WindowEventCategory) & category; + } private: const glm::uvec2 m_size; @@ -82,9 +100,15 @@ public: return "WindowLostFocus"; } - event_type(WindowLostFocus); + [[nodiscard]] auto get_event_type() const -> EventType override + { + return ::lt::EventType::WindowLostFocus; + } - event_category(WindowEventCategory); + [[nodiscard]] auto has_category(EventCategory category) const -> bool override + { + return static_cast(WindowEventCategory) & category; + } }; class WindowGainFocusEvent: public Event @@ -95,9 +119,15 @@ public: return "WindowGainFocus"; } - event_type(WindowGainFocus); + [[nodiscard]] auto get_event_type() const -> EventType override + { + return ::lt::EventType::WindowGainFocus; + } - event_category(WindowEventCategory); + [[nodiscard]] auto has_category(EventCategory category) const -> bool override + { + return static_cast(WindowEventCategory) & category; + } }; } // namespace lt