Hana
Loading...
Searching...
No Matches
MouseEvent.h
1#pragma once
2
3#include "Hana/Events/Event.h"
4
5namespace Hana
6{
7 class MouseMovedEvent : public Event
8 {
9 public:
10 MouseMovedEvent(float x, float y)
11 : m_MouseX(x), m_MouseY(y) {}
12
13 inline float GetX() const { return m_MouseX; }
14 inline float GetY() const { return m_MouseY; }
15
16 std::string ToString() const override
17 {
18 std::stringstream ss;
19 ss << "MouseMovedEvent: " << m_MouseX << ", " << m_MouseY;
20 return ss.str();
21 }
22
23 EVENT_CLASS_TYPE(MouseMoved)
24 EVENT_CLASS_CATEGORY(EventCategoryMouse | EventCategoryInput)
25 private:
26 float m_MouseX, m_MouseY;
27 };
28
29 class MouseScrolledEvent : public Event
30 {
31 public:
32 MouseScrolledEvent(float xOffset, float yOffset)
33 : m_XOffset(xOffset), m_YOffset(yOffset) {}
34
35 inline float GetXOffset() const { return m_XOffset; }
36 inline float GetYOffset() const { return m_YOffset; }
37
38 std::string ToString() const override
39 {
40 std::stringstream ss;
41 ss << "MouseScrolledEvent: " << GetXOffset() << ", " << GetYOffset();
42 return ss.str();
43 }
44
45 EVENT_CLASS_TYPE(MouseScrolled)
46 EVENT_CLASS_CATEGORY(EventCategoryMouse | EventCategoryInput)
47 private:
48 float m_XOffset, m_YOffset;
49 };
50
51 class MouseButtonEvent : public Event
52 {
53 public:
54 inline int GetMouseButton() const { return m_Button; }
55
56 EVENT_CLASS_CATEGORY(EventCategoryMouse | EventCategoryInput)
57 protected:
58 MouseButtonEvent(int button)
59 : m_Button(button) {}
60
61 int m_Button;
62 };
63
64 class MouseButtonPressedEvent : public MouseButtonEvent
65 {
66 public:
67 MouseButtonPressedEvent(int button)
68 : MouseButtonEvent(button) {}
69
70 std::string ToString() const override
71 {
72 std::stringstream ss;
73 ss << "MouseButtonPressedEvent: " << m_Button;
74 return ss.str();
75 }
76
77 EVENT_CLASS_TYPE(MouseButtonPressed)
78 };
79
80 class MouseButtonReleasedEvent : public MouseButtonEvent
81 {
82 public:
83 MouseButtonReleasedEvent(int button)
84 : MouseButtonEvent(button) {}
85
86 std::string ToString() const override
87 {
88 std::stringstream ss;
89 ss << "MouseButtonReleasedEvent: " << m_Button;
90 return ss.str();
91 }
92
93 EVENT_CLASS_TYPE(MouseButtonReleased);
94 };
95
96
97}
Definition Event.h:39