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 "krpch.h"
13#include "Event.h"
14
15namespace Karma
16{
21 {
22 public:
28 MouseMovedEvent(float x, float y) : m_MouseX(x), m_MouseY(y)
29 {
30 }
31
37 inline float GetX() const { return m_MouseX; }
38
44 inline float GetY() const { return m_MouseY; }
45
51 std::string ToString() const override
52 {
53 std::stringstream ss;
54 ss << "MouseMovedEvent: " << m_MouseX << ", " << m_MouseY;
55 return ss.str();
56 }
57
58 EVENT_CLASS_TYPE(MouseMoved)
60
61 private:
62 float m_MouseX, m_MouseY;
63 };
64
69 {
70 public:
76 MouseScrolledEvent(float xOffset, float yOffset) : m_XOffset(xOffset),
77 m_YOffset(yOffset)
78 {
79 }
80
86 inline float GetXOffset() const { return m_XOffset; }
87
93 inline float GetYOffset() const { return m_YOffset; }
94
98 std::string ToString() const override
99 {
100 std::stringstream ss;
101 ss << "MouseScrolledEvent: " << m_XOffset << ", " << m_YOffset;
102 return ss.str();
103 }
104
105 EVENT_CLASS_TYPE(MouseScrolled)
107 private:
108 float m_XOffset, m_YOffset;
109 };
110
114 class KARMA_API MouseButtonEvent : public Event
115 {
116 public:
122 inline int GetMouseButton() const { return m_Button; }
123
125 protected:
126 MouseButtonEvent(int button) : m_Button(button)
127 {
128 }
129 int m_Button;
130 };
131
135 class KARMA_API MouseButtonPressedEvent : public MouseButtonEvent
136 {
137 public:
146 MouseButtonPressedEvent(int button) : MouseButtonEvent(button)
147 {
148 }
149
155 std::string ToString() const override
156 {
157 std::stringstream ss;
158 ss << "MouseButtonPressedEvent: " << m_Button;
159 return ss.str();
160 }
161
162 EVENT_CLASS_TYPE(MouseButtonPressed)
163 };
164
168 class KARMA_API MouseButtonReleasedEvent : public MouseButtonEvent
169 {
170 public:
179 MouseButtonReleasedEvent(int button) : MouseButtonEvent(button)
180 {
181 }
182
188 std::string ToString() const override
189 {
190 std::stringstream ss;
191 ss << "MouseButtonReleasedEvent: " << m_Button;
192 return ss.str();
193 }
194
195 EVENT_CLASS_TYPE(MouseButtonReleased)
196 };
197}
#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:47
@ EventCategoryMouse
Events belonging to game movement inputs from mouse.
Definition Event.h:57
#define EVENT_CLASS_TYPE(type)
A macro for a template for Event based classes.
Definition Event.h:75
#define EVENT_CLASS_CATEGORY(category)
Macro for the routine category flags.
Definition Event.h:84
The base class of all the events for Karma.
Definition Event.h:90
Base class for mouse button press and release events.
Definition MouseEvent.h:115
int GetMouseButton() const
Getter for mouse button.
Definition MouseEvent.h:122
MouseButtonPressedEvent(int button)
A constructor.
Definition MouseEvent.h:146
std::string ToString() const override
String representation of the mouse button press event.
Definition MouseEvent.h:155
MouseButtonReleasedEvent(int button)
A constructor.
Definition MouseEvent.h:179
std::string ToString() const override
String representation of the event.
Definition MouseEvent.h:188
float GetY() const
Getter for y coordinate.
Definition MouseEvent.h:44
std::string ToString() const override
String representation of event.
Definition MouseEvent.h:51
MouseMovedEvent(float x, float y)
Default constructor.
Definition MouseEvent.h:28
float GetX() const
Getter for x coordinate.
Definition MouseEvent.h:37
float GetXOffset() const
Getter for x offset.
Definition MouseEvent.h:86
float GetYOffset() const
Getter for y offset.
Definition MouseEvent.h:93
MouseScrolledEvent(float xOffset, float yOffset)
Default constructor.
Definition MouseEvent.h:76
std::string ToString() const override
String representation of scrolling event.
Definition MouseEvent.h:98