-
Notifications
You must be signed in to change notification settings - Fork 0
/
Mouse.c
78 lines (70 loc) · 1.62 KB
/
Mouse.c
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
#include "Mouse.h"
u32 mouse_x;
u32 mouse_y;
u8 mouse_button_left;
u8 mouse_button_left_old;
u8 mouse_button_middle;
u8 mouse_button_middle_old;
u8 mouse_button_right;
u8 mouse_button_right_old;
u8 mouse_button_x1;
u8 mouse_button_x2;
//u32 mouse_wheel_x;
//u32 mouse_wheel_x_up;
//u32 mouse_wheel_x_down;
u32 mouse_wheel_y;
//u32 mouse_wheel_y_up;
//u32 mouse_wheel_y_down;
void Mouse_Event(SDL_Event *e)
{
switch (e->type)
{
case SDL_MOUSEMOTION:
{
mouse_x = e->motion.x;
mouse_y = e->motion.y;
} break;
case SDL_MOUSEBUTTONUP:
case SDL_MOUSEBUTTONDOWN:
{
switch (e->button.button)
{
case SDL_BUTTON_LEFT:
{
mouse_button_left_old = mouse_button_left;
mouse_button_left = (e->button.state == SDL_PRESSED ? 1 : 0);
} break;
case SDL_BUTTON_MIDDLE:
{
mouse_button_middle_old = mouse_button_middle;
mouse_button_middle = (e->button.state == SDL_PRESSED ? 1 : 0);
} break;
case SDL_BUTTON_RIGHT:
{
mouse_button_right_old = mouse_button_right;
mouse_button_right = (e->button.state == SDL_PRESSED ? 1 : 0);
} break;
case SDL_BUTTON_X1:
{
mouse_button_x1 = (e->button.state == SDL_PRESSED ? 1 : 0);
} break;
case SDL_BUTTON_X2:
{
mouse_button_x2 = (e->button.state == SDL_PRESSED ? 1 : 0);
} break;
}
} break;
case SDL_MOUSEWHEEL:
{
u8 scroll_speed = 1;
if (e->wheel.y > 0) // scroll up
{
mouse_wheel_y += scroll_speed;
}
else if (e->wheel.y < 0) // scroll down
{
mouse_wheel_y -= scroll_speed;
}
} break;
}
}