-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMouse.cpp
More file actions
112 lines (91 loc) · 2.11 KB
/
Mouse.cpp
File metadata and controls
112 lines (91 loc) · 2.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/*
NOTE;
REFER MOUSE.H
*/
#include "Mouse.h"
namespace DifferentialArts
{
MouseButton::~MouseButton()
{
}
MouseButton::MouseButton()
{
}
bool MouseButton::isDown()
{
return this->state;
}
bool MouseButton::isReleased()
{
return this->release;
}
void MouseButton::SetState(bool s)
{
this->state = s;
}
void MouseButton::SetRelease(bool s)
{
this->release = s;
}
Mouse::~Mouse()
{
}
Mouse::Mouse()
{
this->LeftButton.state = false;
this->RightButton.state = false;
this->MiddleButton.state = false;
}
void Mouse::Hide(void)
{
int level = ShowCursor(FALSE);
if(level > -1)
this->Hide();
}
void Mouse::Show(void)
{
int level = ShowCursor(TRUE);
if(level < 0)
this->Show();
}
void Mouse::SetPosition(int xpos, int ypos)
{
SetCursorPos(xpos, ypos);
}
/* This function will center the mouse on screen */
void Mouse::CenterScreen(MousePointInt windowPosition, DIM dimensions, DIM sysResolution)
{
unsigned int middleX, middleY;
middleX = windowPosition.x>10000?1:windowPosition.x + (int(dimensions.x)>>1);
middleY = windowPosition.y>10000?1:windowPosition.y + (int(dimensions.y)>>1);
middleX = (middleX>sysResolution.x)?sysResolution.x-5:middleX;
middleY = (middleY>sysResolution.y)?sysResolution.y-5:middleY;
/*
char str[128];
sprintf(str, "x: %d y: %d", int(dimensions.x)>>1, int(dimensions.y)>>1);
MessageBox(NULL, str, "", MB_OK);
*/
SetCursorPos(middleX, middleY);
}
DIM Mouse::getCenter(MousePointInt windowPosition, DIM dimensions, DIM sysResolution)
{
DIM middle;
unsigned int middleX, middleY;
middleX = windowPosition.x>10000?1:windowPosition.x + (int(dimensions.x)>>1);
middleY = windowPosition.y>10000?1:windowPosition.y + (int(dimensions.y)>>1);
middleX = (middleX>sysResolution.x)?sysResolution.x-5:middleX;
middleY = (middleY>sysResolution.y)?sysResolution.y-5:middleY;
middle.x = middleX;
middle.y = middleY;
return middle;
}
MousePointInt Mouse::GetImmediateCursorPosition(void)
{
MousePointInt ret;
POINT tempRet;
GetCursorPos(&tempRet);
ret.x = tempRet.x;
ret.y = tempRet.y;
return ret;
}
}