KarmaEngine
Game Engine for practical learning and research purposes
Loading...
Searching...
No Matches
MouseEvent.h
Go to the documentation of this file.
1
10#pragma once
11
12#include "Event.h"
13
14namespace Karma
15{
20 {
21 public:
27 MouseMovedEvent(float x, float y) : m_MouseX(x), m_MouseY(y)
28 {
29 }
30
36 inline float GetX() const { return m_MouseX; }
37
43 inline float GetY() const { return m_MouseY; }
44
50 std::string ToString() const override
51 {
52 std::stringstream ss;
53 ss << "MouseMovedEvent: " << m_MouseX << ", " << m_MouseY;
54 return ss.str();
55 }
56
57 EVENT_CLASS_TYPE(MouseMoved)
59
60 private:
61 float m_MouseX, m_MouseY;
62 };
63
68 {
69 public:
75 MouseScrolledEvent(float xOffset, float yOffset) : m_XOffset(xOffset),
76 m_YOffset(yOffset)
77 {
78 }
79
85 inline float GetXOffset() const { return m_XOffset; }
86
92 inline float GetYOffset() const { return m_YOffset; }
93
97 std::string ToString() const override
98 {
99 std::stringstream ss;
100 ss << "MouseScrolledEvent: " << m_XOffset << ", " << m_YOffset;
101 return ss.str();
102 }
103
104 EVENT_CLASS_TYPE(MouseScrolled)
106 private:
107 float m_XOffset, m_YOffset;
108 };
109
113 class KARMA_API MouseButtonEvent : public Event
114 {
115 public:
121 inline int GetMouseButton() const { return m_Button; }
122
124 protected:
125 MouseButtonEvent(int button) : m_Button(button)
126 {
127 }
128 int m_Button;
129 };
130
134 class KARMA_API MouseButtonPressedEvent : public MouseButtonEvent
135 {
136 public:
145 MouseButtonPressedEvent(int button) : MouseButtonEvent(button)
146 {
147 }
148
154 std::string ToString() const override
155 {
156 std::stringstream ss;
157 ss << "MouseButtonPressedEvent: " << m_Button;
158 return ss.str();
159 }
160
161 EVENT_CLASS_TYPE(MouseButtonPressed)
162 };
163
167 class KARMA_API MouseButtonReleasedEvent : public MouseButtonEvent
168 {
169 public:
178 MouseButtonReleasedEvent(int button) : MouseButtonEvent(button)
179 {
180 }
181
187 std::string ToString() const override
188 {
189 std::stringstream ss;
190 ss << "MouseButtonReleasedEvent: " << m_Button;
191 return ss.str();
192 }
193
194 EVENT_CLASS_TYPE(MouseButtonReleased)
195 };
196}
#define KARMA_API
Defining Karma's API macro for storage class information.
Definition Core.h:41
This file contains the base class Event for Karma's events.
@ EventCategoryInput
Events belonging to game inputs. Input device examples include keyboard, mouse, and all that.
Definition Event.h:45
@ EventCategoryMouse
Events belonging to game movement inputs from mouse.
Definition Event.h:55
#define EVENT_CLASS_TYPE(type)
A macro for a template for Event based classes.
Definition Event.h:73
#define EVENT_CLASS_CATEGORY(category)
Macro for the routine category flags.
Definition Event.h:82
The base class of all the events for Karma.
Definition Event.h:88
Base class for mouse button press and release events.
Definition MouseEvent.h:114
int GetMouseButton() const
Getter for mouse button.
Definition MouseEvent.h:121
MouseButtonPressedEvent(int button)
A constructor.
Definition MouseEvent.h:145
std::string ToString() const override
String representation of the mouse button press event.
Definition MouseEvent.h:154
MouseButtonReleasedEvent(int button)
A constructor.
Definition MouseEvent.h:178
std::string ToString() const override
String representation of the event.
Definition MouseEvent.h:187
float GetY() const
Getter for y coordinate.
Definition MouseEvent.h:43
std::string ToString() const override
String representation of event.
Definition MouseEvent.h:50
MouseMovedEvent(float x, float y)
Default constructor.
Definition MouseEvent.h:27
float GetX() const
Getter for x coordinate.
Definition MouseEvent.h:36
float GetXOffset() const
Getter for x offset.
Definition MouseEvent.h:85
float GetYOffset() const
Getter for y offset.
Definition MouseEvent.h:92
MouseScrolledEvent(float xOffset, float yOffset)
Default constructor.
Definition MouseEvent.h:75
std::string ToString() const override
String representation of scrolling event.
Definition MouseEvent.h:97