annotate doc/docs/dev/api/core/event.md @ 288:cc0f02ae9005

core: add maths_scale function
author David Demelier <markand@malikania.fr>
date Thu, 07 Jan 2021 15:50:01 +0100
parents c4da052c0def
children 196264679079
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
253
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 # Module: event
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
2
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 Synopsis
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
4
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 ```c
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 #include <core/event.h>
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 ```
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
8
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 Poll user input and system events.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
10
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 ## Enums
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
12
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 ### event\_type
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
14
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 Which kind of event has been reported.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
16
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 | Enumerator | Description |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 |-------------------|-------------------------------------------------------|
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 | `EVENT_CLICKDOWN` | Mouse click down, see [event_click](#event_click) |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 | `EVENT_CLICKUP` | Mouse click released, see [event_click](#event_click) |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 | `EVENT_KEYDOWN` | Single key down, see [event_key](#event_key) |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 | `EVENT_KEYUP` | Single key released, see [event_key](#event_key) |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 | `EVENT_MOUSE` | Mouse moved, see [event_mouse](#event_mouse) |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 | `EVENT_QUIT` | Quit request |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 ## Unions
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 ### event
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
29
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 Union that store every kind of event.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
31
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 The union along with every sub structures that are defined all have the `enum
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 event_type` as first field which means that you can access the union's type
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 field directly.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
35
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 Depending on the [type](#type) field, access only the appropriate sub structure
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 that describe the event. See below structures that describe events.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
38
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 | Field | Access | Type |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 |-----------------|--------|----------------------|
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 | [type](#type) | (-) | `enum event_type` |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 | [key](#key) | (+) | `struct event_key` |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 | [mouse](#mouse) | (+) | `struct event_mouse` |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 | [click](#click) | (+) | `struct event_click` |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
45
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 #### type
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
47
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 Which kind of event happened.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
49
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 #### key, mouse, click
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
51
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 Access to the element details depending on the type.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
53
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 ## Structs
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
55
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 ### event\_key
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
57
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 Describe a keyboard key that was pressed or released.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
59
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 | Field | Access | Type |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 |-----------------|--------|-------------------|
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 | [type](#type_1) | (-) | `enum event_type` |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 | [key](#key) | (+) | `enum key` |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
64
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 #### type
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
66
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 Set to `EVENT_KEYDOWN` or `EVENT_KEYUP`.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
68
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 #### key
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
70
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 Which key, see [key](key.md) for more information.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
72
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 ### event\_mouse
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
74
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 Describe a mouse motion.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
76
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 | Field | Access | Type |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 |---------------------|--------|---------------------|
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 | [type](#type_2) | (-) | `enum event_type` |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 | [buttons](#buttons) | (+) | `enum mouse_button` |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 | [x](#x-y) | (+) | `int` |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 | [y](#y-y) | (+) | `int` |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
83
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 #### type
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
85
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 Set to `EVENT_MOUSE`.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
87
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 #### buttons
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
89
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 OR'ed values of buttons currently pressed, see [mouse](mouse.md) for more
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 information.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
92
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 #### x, y
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
94
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 New absolute coordinates.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
96
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 ### event\_click
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
98
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 Describe a mouse click or release.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
100
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 | Field | Access | Type |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 |-------------------|--------|---------------------|
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 | [type](#type_2) | (-) | `enum event_type` |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 | [button](#button) | (+) | `enum mouse_button` |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 | [x](#x-y_1) | (+) | `int` |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 | [y](#y-y_1) | (+) | `int` |
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
107
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 #### type
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
109
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 Set to `EVENT_CLICKDOWN` or `EVENT_CLICKUP`.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
111
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 #### button
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
113
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 Unique button pressed or released.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
115
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 #### x, y
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
117
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 Absolute coordinates.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
119
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 ## Functions
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
121
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 ### event\_poll
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
123
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 Fetch the next event into `ev` or return false if there are not.
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
125
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
126 ```c
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 bool
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 event_poll(union event *ev)
c4da052c0def core: goodbye doxygen
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 ```