PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
MouseEvent.hpp
1#pragma once
2
3#include "PixelBullet/Application/Event.hpp"
4#include "PixelBullet/Input/MouseCodes.hpp"
5
6namespace
7{
8 using MouseCode = PixelBullet::Input::MouseCode;
9}
10
11namespace PixelBullet
12{
13 class MouseMovedEvent : public Event
14 {
15 public:
16 MouseMovedEvent(const float x, const float y)
17 : m_MouseX(x)
18 , m_MouseY(y)
19 {
20 }
21
22 float GetX() const
23 {
24 return m_MouseX;
25 }
26 float GetY() const
27 {
28 return m_MouseY;
29 }
30
31 std::string ToString() const override
32 {
33 std::stringstream ss;
34 ss << "MouseMovedEvent: " << m_MouseX << ", " << m_MouseY;
35 return ss.str();
36 }
37
38 EVENT_CLASS_TYPE(MouseMoved)
39 EVENT_CLASS_CATEGORY(EventCategoryMouse | EventCategoryInput)
40 private:
41 float m_MouseX, m_MouseY;
42 };
43
45 {
46 public:
47 MouseScrolledEvent(const float xOffset, const float yOffset)
48 : m_XOffset(xOffset)
49 , m_YOffset(yOffset)
50 {
51 }
52
53 float GetXOffset() const
54 {
55 return m_XOffset;
56 }
57 float GetYOffset() const
58 {
59 return m_YOffset;
60 }
61
62 std::string ToString() const override
63 {
64 std::stringstream ss;
65 ss << "MouseScrolledEvent: " << GetXOffset() << ", " << GetYOffset();
66 return ss.str();
67 }
68
69 EVENT_CLASS_TYPE(MouseScrolled)
70 EVENT_CLASS_CATEGORY(EventCategoryMouse | EventCategoryInput)
71 private:
72 float m_XOffset, m_YOffset;
73 };
74
75 class MouseButtonEvent : public Event
76 {
77 public:
78 MouseCode GetMouseButton() const
79 {
80 return m_Button;
81 }
82
83 EVENT_CLASS_CATEGORY(EventCategoryMouse | EventCategoryInput | EventCategoryMouseButton)
84 protected:
85 MouseButtonEvent(const MouseCode button)
86 : m_Button(button)
87 {
88 }
89
90 MouseCode m_Button;
91 };
92
94 {
95 public:
96 MouseButtonPressedEvent(const MouseCode button)
97 : MouseButtonEvent(button)
98 {
99 }
100
101 std::string ToString() const override
102 {
103 std::stringstream ss;
104 ss << "MouseButtonPressedEvent: " << m_Button;
105 return ss.str();
106 }
107
108 EVENT_CLASS_TYPE(MouseButtonPressed)
109 };
110
112 {
113 public:
114 MouseButtonReleasedEvent(const MouseCode button)
115 : MouseButtonEvent(button)
116 {
117 }
118
119 std::string ToString() const override
120 {
121 std::stringstream ss;
122 ss << "MouseButtonReleasedEvent: " << m_Button;
123 return ss.str();
124 }
125
126 EVENT_CLASS_TYPE(MouseButtonReleased)
127 };
128
129} // namespace PixelBullet
Definition Event.hpp:65
Definition MouseEvent.hpp:76
Definition MouseEvent.hpp:94
Definition MouseEvent.hpp:112
Definition MouseEvent.hpp:14
Definition MouseEvent.hpp:45