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