PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
mouse_event.h
1#pragma once
2
3#include "pixelbullet/application/event.h"
4#include "pixelbullet/input/mouse_codes.h"
5
6namespace
7{
8using MouseCode = pixelbullet::input::MouseCode;
9}
10
11namespace pixelbullet
12{
13class MouseMovedEvent : public Event
14{
15public:
16 MouseMovedEvent(const float x, const float y)
17 : mouse_x_(x)
18 , mouse_y_(y)
19 {
20 }
21
22 float GetX() const
23 {
24 return mouse_x_;
25 }
26 float GetY() const
27 {
28 return mouse_y_;
29 }
30
31 std::string ToString() const override
32 {
33 std::stringstream ss;
34 ss << "MouseMovedEvent: " << mouse_x_ << ", " << mouse_y_;
35 return ss.str();
36 }
37
38 EVENT_CLASS_TYPE(MouseMoved)
39 EVENT_CLASS_CATEGORY(EventCategoryMouse | EventCategoryInput)
40private:
41 float mouse_x_, mouse_y_;
42};
43
45{
46public:
47 MouseScrolledEvent(const float xOffset, const float yOffset)
48 : x_offset_(xOffset)
49 , y_offset_(yOffset)
50 {
51 }
52
53 float GetXOffset() const
54 {
55 return x_offset_;
56 }
57 float GetYOffset() const
58 {
59 return y_offset_;
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)
71private:
72 float x_offset_, y_offset_;
73};
74
75class MouseButtonEvent : public Event
76{
77public:
78 MouseCode GetMouseButton() const
79 {
80 return button_;
81 }
82
83 EVENT_CLASS_CATEGORY(EventCategoryMouse | EventCategoryInput | EventCategoryMouseButton)
84protected:
85 MouseButtonEvent(const MouseCode button)
86 : button_(button)
87 {
88 }
89
90 MouseCode button_;
91};
92
94{
95public:
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: " << button_;
105 return ss.str();
106 }
107
108 EVENT_CLASS_TYPE(MouseButtonPressed)
109};
110
112{
113public:
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: " << button_;
123 return ss.str();
124 }
125
126 EVENT_CLASS_TYPE(MouseButtonReleased)
127};
128
129} // namespace pixelbullet
Definition event.h:72
Definition mouse_event.h:76
Definition mouse_event.h:94
Definition mouse_event.h:112
Definition mouse_event.h:14
Definition mouse_event.h:45