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"
6
#include "
LkEngine/Core/Math/Vector.h
"
7
8
9
namespace
LkEngine
{
10
11
class
LMouseButtonPressedEvent
:
public
LEvent
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
30
class
LMouseButtonReleasedEvent
:
public
LEvent
31
{
32
public
:
33
LMouseButtonReleasedEvent
() =
delete
;
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
74
class
LMouseScrolledEvent
:
public
LEvent
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
}
Vector.h
Mathematical vectors.
LkEngine::LEvent
Definition
Event.h:71
LkEngine::LMouseButtonPressedEvent
Definition
MouseEvent.h:12
LkEngine::LMouseButtonReleasedEvent
Definition
MouseEvent.h:31
LkEngine::LMouseMovedEvent
Definition
MouseEvent.h:50
LkEngine::LMouseScrolledEvent
Definition
MouseEvent.h:75
LkEngine
Definition
Asset.h:11
LkEngine::EMouseButton
EMouseButton
Definition
MouseCodes.h:10
LkEngine
Source
LkEngine
Core
Event
MouseEvent.h
Generated by
1.12.0