LkEngine 0.1.2
 
Loading...
Searching...
No Matches
MouseEvent.h
1#pragma once
2
3#include "Event.h"
4
5#include "LkEngine/Core/Input/MouseCodes.h"
7
8
9namespace LkEngine {
10
12 {
13 public:
14 LMouseButtonPressedEvent() = delete;
15 LMouseButtonPressedEvent(const EMouseButton InButton) : Button(InButton) {}
16
17 FORCEINLINE EMouseButton GetMouseButton() const { return Button; }
18
19 FORCEINLINE std::string ToString() const override
20 {
21 return LK_FMT_LIB::format("MouseButtonPressed: {} ({})", Enum::ToString(Button), static_cast<int>(Button));
22 }
23
24 private:
25 EMouseButton Button = EMouseButton::None;
26
27 LEVENT(LMouseButtonPressedEvent, MouseButtonPressed);
28 };
29
31 {
32 public:
34 LMouseButtonReleasedEvent(const EMouseButton InButton) : Button(InButton) {}
35
36 FORCEINLINE EMouseButton GetMouseButton() const { return Button; }
37
38 FORCEINLINE std::string ToString() const override
39 {
40 return LK_FMT_LIB::format("MouseButtonReleased: {} ({})", Enum::ToString(Button), static_cast<int>(Button));
41 }
42
43 private:
44 EMouseButton Button = EMouseButton::None;
45
46 LEVENT(LMouseButtonReleasedEvent, MouseButtonReleased);
47 };
48
49 class LMouseMovedEvent : public LEvent
50 {
51 public:
52 LMouseMovedEvent(const uint16_t InX, const uint16_t InY)
53 : PosX(InX)
54 , PosY(InY)
55 {
56 }
57
58 FORCEINLINE float GetX() const { return PosX; }
59 FORCEINLINE float GetY() const { return PosY; }
60 FORCEINLINE std::pair<uint16_t, uint16_t> GetPos() const { return std::make_pair(PosX, PosY); }
61
62 FORCEINLINE std::string ToString() const override
63 {
64 return LK_FMT_LIB::format("MouseMovedEvent: ({}, {})", PosX, PosY);
65 }
66
67 private:
68 uint16_t PosX = 0.0f;
69 uint16_t PosY = 0.0f;
70
71 LEVENT(LMouseMovedEvent, MouseMoved);
72 };
73
75 {
76 public:
77 LMouseScrolledEvent() = delete;
78 LMouseScrolledEvent(const float InOffsetX, const float InOffsetY)
79 : OffsetX(InOffsetX)
80 , OffsetY(InOffsetY)
81 {
82 }
83
84 FORCEINLINE float GetXOffset() const { return OffsetX; }
85 FORCEINLINE float GetYOffset() const { return OffsetY; }
86
87 FORCEINLINE std::string ToString() const override
88 {
89 return LK_FMT_LIB::format("MouseScrolledEvent: ({}, {})", OffsetX, OffsetY);
90 }
91
92 private:
93 float OffsetX = 0.0f;
94 float OffsetY = 0.0f;
95
96 LEVENT(LMouseScrolledEvent, MouseScrolled);
97 };
98
99}
Mathematical vectors.
Definition Event.h:71
Definition MouseEvent.h:12
Definition MouseEvent.h:31
Definition MouseEvent.h:50
Definition MouseEvent.h:75
Definition Asset.h:11
EMouseButton
Definition MouseCodes.h:10