-
Notifications
You must be signed in to change notification settings - Fork 0
/
mouse_rescue.e
42 lines (36 loc) · 925 Bytes
/
mouse_rescue.e
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
public include std/math.e
public constant
MOVE = 1,
LEFT_DOWN = 2,
LEFT_UP = 4,
RIGHT_DOWN = 8,
RIGHT_UP = 16,
MIDDLE_DOWN = 32,
MIDDLE_UP = 64,
ANY_UP = LEFT_UP + RIGHT_UP + MIDDLE_UP,
ANY_DOWN = LEFT_DOWN + RIGHT_DOWN + MIDDLE_DOWN,
$
-- constant M_GET_MOUSE = 14,
-- M_MOUSE_EVENTS = 15,
-- M_MOUSE_POINTER = 24
export sequence mouse_buff
mouse_buff = {}
public function get_mouse()
-- report mouse events,
-- returns -1 if no mouse event,
-- otherwise returns {event#, x-coord, y-coord}
-- return machine_func(M_GET_MOUSE, 0)
task_yield()
if length(mouse_buff) = 0 then
return 0
else
sequence event = mouse_buff[1]
mouse_buff = remove( mouse_buff, 1 )
return event
end if
end function
ifdef WINDOWS then
public include mouse_rescue.ew
elsedef
public include mouse_rescue.eu
end ifdef