SPARK  0.1.0
A general purpose game engine written in C++.
Loading...
Searching...
No Matches
MouseEvents.h
1#pragma once
2
3#include "spark/events/Event.h"
4#include "spark/events/Export.h"
5
6#include "spark/base/MouseCodes.h"
7
8namespace spark::events
9{
13 class SPARK_EVENTS_EXPORT MouseMovedEvent final : public Event
14 {
15 DECLARE_SPARK_RTTI(MouseMovedEvent, Event)
16 DEFINE_EVENT_TYPE(EventType::MouseMoved)
17 DEFINE_EVENT_CATEGORY(EventCategoryMouse | EventCategoryInput)
18
19 public:
25 explicit MouseMovedEvent(int x, int y);
26
31 [[nodiscard]] int x() const;
32
37 [[nodiscard]] int y() const;
38
39 private:
40 int m_mouseX, m_mouseY;
41 };
42
46 class SPARK_EVENTS_EXPORT MouseScrolledEvent final : public Event
47 {
48 DECLARE_SPARK_RTTI(MouseScrolledEvent, Event)
49 DEFINE_EVENT_TYPE(EventType::MouseScrolled)
50 DEFINE_EVENT_CATEGORY(EventCategoryMouse | EventCategoryInput)
51
52 public:
57 explicit MouseScrolledEvent(float offset);
58
63 [[nodiscard]] float offset() const;
64
65 private:
66 float m_offset;
67 };
68
72 class SPARK_EVENTS_EXPORT MouseButtonEvent : public Event
73 {
74 DECLARE_SPARK_RTTI(MouseButtonEvent, Event)
75 DEFINE_EVENT_CATEGORY(EventCategoryMouse | EventCategoryInput | EventCategoryMouseButton)
76
77 public:
82 [[nodiscard]] base::MouseCode button() const;
83
84 protected:
85 explicit MouseButtonEvent(base::MouseCode button);
86
87 private:
88 base::MouseCode m_button;
89 };
90
94 class SPARK_EVENTS_EXPORT MouseButtonPressedEvent final : public MouseButtonEvent
95 {
96 DECLARE_SPARK_RTTI(MouseButtonPressedEvent, MouseButtonEvent)
97 DEFINE_EVENT_TYPE(EventType::MouseButtonPressed)
98
99 public:
104 explicit MouseButtonPressedEvent(base::MouseCode button);
105 };
106
110 class SPARK_EVENTS_EXPORT MouseButtonReleasedEvent final : public MouseButtonEvent
111 {
112 DECLARE_SPARK_RTTI(MouseButtonReleasedEvent, MouseButtonEvent)
113 DEFINE_EVENT_TYPE(EventType::MouseButtonReleased)
114
115 public:
120 explicit MouseButtonReleasedEvent(base::MouseCode button);
121 };
122}
123
124IMPLEMENT_SPARK_RTTI(spark::events::MouseMovedEvent)
125
126IMPLEMENT_SPARK_RTTI(spark::events::MouseScrolledEvent)
127
128IMPLEMENT_SPARK_RTTI(spark::events::MouseButtonEvent)
129
130IMPLEMENT_SPARK_RTTI(spark::events::MouseButtonPressedEvent)
131
132IMPLEMENT_SPARK_RTTI(spark::events::MouseButtonReleasedEvent)
A base class for all events in SPARK.
Definition Event.h:53
A base class for all mouse button events.
Definition MouseEvents.h:73
A class representing a mouse button pressed event.
Definition MouseEvents.h:95
A class representing a mouse button released event.
Definition MouseEvents.h:111
A class representing a mouse moved event.
Definition MouseEvents.h:14
A class representing a mouse scrolled event.
Definition MouseEvents.h:47