This repository was archived by the owner on Aug 31, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 226
Expand file tree
/
Copy patheventqueue.h
More file actions
93 lines (66 loc) · 2.95 KB
/
eventqueue.h
File metadata and controls
93 lines (66 loc) · 2.95 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
/* Copyright (C) 2003-2015 LiveCode Ltd.
This file is part of LiveCode.
LiveCode is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License v3 as published by the Free
Software Foundation.
LiveCode is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with LiveCode. If not see <http://www.gnu.org/licenses/>. */
#ifndef __MC_EVENT_QUEUE__
#define __MC_EVENT_QUEUE__
enum MCMousePressState
{
kMCMousePressStateUp,
kMCMousePressStateDown,
kMCMousePressStateRelease
};
bool MCEventQueueInitialize(void);
void MCEventQueueFinalize(void);
bool MCEventQueueDispatch(void);
void MCEventQueueFlush(MCStack *p_stack);
bool MCEventQueueGetMouseClick(uint32_t p_button);
typedef void (*MCEventQueueNotifyCallback)(void *state, bool dispatch);
bool MCEventQueuePostNotify(MCEventQueueNotifyCallback callback, void *state);
// IM-2014-02-14: [[ HiDPI ]] Post backing scale changes with window reshape message
bool MCEventQueuePostWindowReshape(MCStack *stack, MCGFloat backing_scale);
bool MCEventQueuePostMouseFocus(MCStack *stack, uint32_t time, bool inside);
bool MCEventQueuePostMousePress(MCStack *stack, uint32_t time, uint32_t modifiers, MCMousePressState state, int32_t button);
bool MCEventQueuePostMouseWheel(MCStack *stack, uint32_t time, uint32_t modifiers, int32_t dh, int32_t dv);
bool MCEventQueuePostMousePosition(MCStack *stack, uint32_t time, uint32_t modifiers, int32_t x, int32_t y);
bool MCEventQueuePostKeyFocus(MCStack *stack, bool owner);
bool MCEventQueuePostKeyPress(MCStack *stack, uint32_t modifiers, uint32_t char_code, uint32_t key_code);
bool MCEventQueuePostImeCompose(MCStack *stack, bool enabled, uint32_t offset, const uint16_t *chars, uint32_t char_count);
enum MCEventTouchPhase
{
kMCEventTouchPhaseBegan,
kMCEventTouchPhaseMoved,
kMCEventTouchPhaseEnded,
kMCEventTouchPhaseCancelled
};
bool MCEventQueuePostTouch(MCStack *stack, MCEventTouchPhase phase, uint32_t ident, uint32_t taps, int32_t x, int32_t y);
enum MCEventMotionType
{
kMCEventMotionShakeBegan,
kMCEventMotionShakeCancelled,
kMCEventMotionShakeEnded
};
bool MCEventQueuePostMotion(MCStack *stack, MCEventMotionType type, uint32_t timestamp);
bool MCEventQueuePostAccelerationChanged(double x, double y, double z, double timestamp);
bool MCEventQueuePostOrientationChanged(void);
bool MCEventQueuePostLocationChanged(void);
bool MCEventQueuePostLocationError(void);
bool MCEventQueuePostHeadingChanged(void);
bool MCEventQueuePostHeadingError(void);
class MCCustomEvent
{
public:
virtual void Destroy(void) = 0;
virtual void Dispatch(void) = 0;
};
bool MCEventQueuePostCustom(MCCustomEvent *event);
bool MCEventQueuePostCustomAtFront(MCCustomEvent *event);
void MCEventQueueClearTouches(void);
#endif