1 #include "declarations.h"
2 #include "dsl_errno.h"
3 #include "dsl_shr.h"
4 #include "dsl_cb.h"
5 
6 
7 
8 /* REMEMBER to check that structures.h::d_par_t::dp has enough room when adding
9    more variables to dsl_cb_*() functions */
10 
11 #if ! defined(PROG_DISABLE_GUI)
dsl_cb_main_loop(struct d_par * d)12 void dsl_cb_main_loop(struct d_par *d) {
13 	d->c = 0;
14 
15 	d->r = dsl_run_sub(d);
16 }
17 
dsl_cb_expose(__UNUSED__ struct w_par * w,struct d_par * d)18 void dsl_cb_expose(__UNUSED__ struct w_par *w, struct d_par *d) {
19 	d->c = 0;
20 
21 	d->r = dsl_run_sub(d);
22 }
23 
dsl_cb_key_press(struct w_par * w,struct d_par * d)24 void dsl_cb_key_press(struct w_par *w, struct d_par *d) {
25 	d->dp[0].c = DSL_PARAM_TYPE_NUMBER;
26 	d->dp[0].d = DSL_NUMBER_TYPE_INT;
27 	d->dp[0].n = (double) w->x;
28 
29 	d->dp[1].c = DSL_PARAM_TYPE_NUMBER;
30 	d->dp[1].d = DSL_NUMBER_TYPE_INT;
31 	d->dp[1].n = (double) w->y;
32 
33 	d->dp[2].c = DSL_PARAM_TYPE_NUMBER;
34 	d->dp[2].d = DSL_NUMBER_TYPE_INT;
35 	d->dp[2].n = (double) w->x_root;
36 
37 	d->dp[3].c = DSL_PARAM_TYPE_NUMBER;
38 	d->dp[3].d = DSL_NUMBER_TYPE_INT;
39 	d->dp[3].n = (double) w->y_root;
40 
41 	d->dp[4].c = DSL_PARAM_TYPE_NUMBER;
42 	d->dp[4].d = DSL_NUMBER_TYPE_UINT;
43 	d->dp[4].n = (double) w->state;
44 
45 	d->dp[5].c = DSL_PARAM_TYPE_NUMBER;
46 	d->dp[5].d = DSL_NUMBER_TYPE_UINT;
47 	d->dp[5].n = (double) w->keycode;
48 
49 	d->dp[6].c = DSL_PARAM_TYPE_STRING;
50 	d->dp[6].s = w->key;
51 	d->dp[6].t = w->key_t;
52 
53 	d->c = 7;
54 
55 	d->r = dsl_run_sub(d);
56 }
57 
dsl_cb_key_release(struct w_par * w,struct d_par * d)58 void dsl_cb_key_release(struct w_par *w, struct d_par *d) {
59 	d->dp[0].c = DSL_PARAM_TYPE_NUMBER;
60 	d->dp[0].d = DSL_NUMBER_TYPE_INT;
61 	d->dp[0].n = (double) w->x;
62 
63 	d->dp[1].c = DSL_PARAM_TYPE_NUMBER;
64 	d->dp[1].d = DSL_NUMBER_TYPE_INT;
65 	d->dp[1].n = (double) w->y;
66 
67 	d->dp[2].c = DSL_PARAM_TYPE_NUMBER;
68 	d->dp[2].d = DSL_NUMBER_TYPE_INT;
69 	d->dp[2].n = (double) w->x_root;
70 
71 	d->dp[3].c = DSL_PARAM_TYPE_NUMBER;
72 	d->dp[3].d = DSL_NUMBER_TYPE_INT;
73 	d->dp[3].n = (double) w->y_root;
74 
75 	d->dp[4].c = DSL_PARAM_TYPE_NUMBER;
76 	d->dp[4].d = DSL_NUMBER_TYPE_UINT;
77 	d->dp[4].n = (double) w->state;
78 
79 	d->dp[5].c = DSL_PARAM_TYPE_NUMBER;
80 	d->dp[5].d = DSL_NUMBER_TYPE_UINT;
81 	d->dp[5].n = (double) w->keycode;
82 
83 	d->dp[6].c = DSL_PARAM_TYPE_STRING;
84 	d->dp[6].s = w->key;
85 	d->dp[6].t = w->key_t;
86 
87 	d->c = 7;
88 
89 	d->r = dsl_run_sub(d);
90 }
91 
dsl_cb_button_press(struct w_par * w,struct d_par * d)92 void dsl_cb_button_press(struct w_par *w, struct d_par *d) {
93 	d->dp[0].c = DSL_PARAM_TYPE_NUMBER;
94 	d->dp[0].d = DSL_NUMBER_TYPE_INT;
95 	d->dp[0].n = (double) w->x;
96 
97 	d->dp[1].c = DSL_PARAM_TYPE_NUMBER;
98 	d->dp[1].d = DSL_NUMBER_TYPE_INT;
99 	d->dp[1].n = (double) w->y;
100 
101 	d->dp[2].c = DSL_PARAM_TYPE_NUMBER;
102 	d->dp[2].d = DSL_NUMBER_TYPE_INT;
103 	d->dp[2].n = (double) w->x_root;
104 
105 	d->dp[3].c = DSL_PARAM_TYPE_NUMBER;
106 	d->dp[3].d = DSL_NUMBER_TYPE_INT;
107 	d->dp[3].n = (double) w->y_root;
108 
109 	d->dp[4].c = DSL_PARAM_TYPE_NUMBER;
110 	d->dp[4].d = DSL_NUMBER_TYPE_UINT;
111 	d->dp[4].n = (double) w->state;
112 
113 	d->dp[5].c = DSL_PARAM_TYPE_NUMBER;
114 	d->dp[5].d = DSL_NUMBER_TYPE_UINT;
115 	d->dp[5].n = (double) w->button;
116 
117 	d->c = 6;
118 
119 	d->r = dsl_run_sub(d);
120 }
121 
dsl_cb_button_release(struct w_par * w,struct d_par * d)122 void dsl_cb_button_release(struct w_par *w, struct d_par *d) {
123 	d->dp[0].c = DSL_PARAM_TYPE_NUMBER;
124 	d->dp[0].d = DSL_NUMBER_TYPE_INT;
125 	d->dp[0].n = (double) w->x;
126 
127 	d->dp[1].c = DSL_PARAM_TYPE_NUMBER;
128 	d->dp[1].d = DSL_NUMBER_TYPE_INT;
129 	d->dp[1].n = (double) w->y;
130 
131 	d->dp[2].c = DSL_PARAM_TYPE_NUMBER;
132 	d->dp[2].d = DSL_NUMBER_TYPE_INT;
133 	d->dp[2].n = (double) w->x_root;
134 
135 	d->dp[3].c = DSL_PARAM_TYPE_NUMBER;
136 	d->dp[3].d = DSL_NUMBER_TYPE_INT;
137 	d->dp[3].n = (double) w->y_root;
138 
139 	d->dp[4].c = DSL_PARAM_TYPE_NUMBER;
140 	d->dp[4].d = DSL_NUMBER_TYPE_UINT;
141 	d->dp[4].n = (double) w->state;
142 
143 	d->dp[5].c = DSL_PARAM_TYPE_NUMBER;
144 	d->dp[5].d = DSL_NUMBER_TYPE_UINT;
145 	d->dp[5].n = (double) w->button;
146 
147 	d->c = 6;
148 
149 	d->r = dsl_run_sub(d);
150 }
151 
dsl_cb_client_message(__UNUSED__ struct w_par * w,struct d_par * d)152 void dsl_cb_client_message(__UNUSED__ struct w_par *w, struct d_par *d) {
153 	d->dp[0].c = DSL_PARAM_TYPE_NUMBER;
154 	d->dp[0].d = DSL_NUMBER_TYPE_LONG;
155 	d->dp[0].n = (double) w->data.l[0];
156 
157 	d->dp[1].c = DSL_PARAM_TYPE_NUMBER;
158 	d->dp[1].d = DSL_NUMBER_TYPE_LONG;
159 	d->dp[1].n = (double) w->data.l[1];
160 
161 	d->dp[2].c = DSL_PARAM_TYPE_NUMBER;
162 	d->dp[2].d = DSL_NUMBER_TYPE_LONG;
163 	d->dp[2].n = (double) w->data.l[2];
164 
165 	d->dp[3].c = DSL_PARAM_TYPE_NUMBER;
166 	d->dp[3].d = DSL_NUMBER_TYPE_LONG;
167 	d->dp[3].n = (double) w->data.l[3];
168 
169 	d->dp[4].c = DSL_PARAM_TYPE_NUMBER;
170 	d->dp[4].d = DSL_NUMBER_TYPE_LONG;
171 	d->dp[4].n = (double) w->data.l[4];
172 
173 	d->c = 5;
174 
175 	d->r = dsl_run_sub(d);
176 }
177 
dsl_cb_configure_notify(__UNUSED__ struct w_par * w,struct d_par * d)178 void dsl_cb_configure_notify(__UNUSED__ struct w_par *w, struct d_par *d) {
179 	d->c = 0;
180 
181 	d->r = dsl_run_sub(d);
182 }
183 
dsl_cb_destroy_notify(__UNUSED__ struct w_par * w,struct d_par * d)184 void dsl_cb_destroy_notify(__UNUSED__ struct w_par *w, struct d_par *d) {
185 	d->c = 0;
186 
187 	d->r = dsl_run_sub(d);
188 }
189 
dsl_cb_motion_notify(struct w_par * w,struct d_par * d)190 void dsl_cb_motion_notify(struct w_par *w, struct d_par *d) {
191 	d->dp[0].c = DSL_PARAM_TYPE_NUMBER;
192 	d->dp[0].d = DSL_NUMBER_TYPE_INT;
193 	d->dp[0].n = (double) w->x;
194 
195 	d->dp[1].c = DSL_PARAM_TYPE_NUMBER;
196 	d->dp[1].d = DSL_NUMBER_TYPE_INT;
197 	d->dp[1].n = (double) w->y;
198 
199 	d->dp[2].c = DSL_PARAM_TYPE_NUMBER;
200 	d->dp[2].d = DSL_NUMBER_TYPE_INT;
201 	d->dp[2].n = (double) w->x_root;
202 
203 	d->dp[3].c = DSL_PARAM_TYPE_NUMBER;
204 	d->dp[3].d = DSL_NUMBER_TYPE_INT;
205 	d->dp[3].n = (double) w->y_root;
206 
207 	d->dp[4].c = DSL_PARAM_TYPE_NUMBER;
208 	d->dp[4].d = DSL_NUMBER_TYPE_UINT;
209 	d->dp[4].n = (double) w->pressed;
210 
211 	d->dp[5].c = DSL_PARAM_TYPE_NUMBER;
212 	d->dp[5].d = DSL_NUMBER_TYPE_CHAR;
213 	d->dp[5].n = (double) w->detail;
214 
215 	d->c = 6;
216 
217 	d->r = dsl_run_sub(d);
218 }
219 
dsl_cb_map_notify(__UNUSED__ struct w_par * w,struct d_par * d)220 void dsl_cb_map_notify(__UNUSED__ struct w_par *w, struct d_par *d) {
221 	d->c = 0;
222 
223 	d->r = dsl_run_sub(d);
224 }
225 
dsl_cb_unmap_notify(__UNUSED__ struct w_par * w,struct d_par * d)226 void dsl_cb_unmap_notify(__UNUSED__ struct w_par *w, struct d_par *d) {
227 	d->c = 0;
228 
229 	d->r = dsl_run_sub(d);
230 }
231 
dsl_cb_open_notify(unsigned int h,struct d_par * d)232 void dsl_cb_open_notify(unsigned int h, struct d_par *d) {
233 	d->dp[0].c = DSL_PARAM_TYPE_HANDLE;
234 	d->dp[0].h = h;
235 
236 	d->c = 1;
237 
238 	d->r = dsl_run_sub(d);
239 }
240 #endif
241 #if ! defined(PROG_DISABLE_GUI) && ! defined(PROG_DISABLE_WIDGET)
dsl_cb_widget_pushbutton_push(__UNUSED__ struct w_par * w,struct d_par * d)242 void dsl_cb_widget_pushbutton_push(__UNUSED__ struct w_par *w, struct d_par *d) {
243 	d->r = dsl_run_sub(d);
244 }
245 
dsl_cb_widget_slideswitch_slide(__UNUSED__ struct w_par * w,struct d_par * d)246 void dsl_cb_widget_slideswitch_slide(__UNUSED__ struct w_par *w, struct d_par *d) {
247 	d->r = dsl_run_sub(d);
248 }
249 
dsl_cb_widget_toggleswitch_toggle(__UNUSED__ struct w_par * w,struct d_par * d)250 void dsl_cb_widget_toggleswitch_toggle(__UNUSED__ struct w_par *w, struct d_par *d) {
251 	d->r = dsl_run_sub(d);
252 }
253 
dsl_cb_widget_turnswitch_turn(__UNUSED__ struct w_par * w,struct d_par * d)254 void dsl_cb_widget_turnswitch_turn(__UNUSED__ struct w_par *w, struct d_par *d) {
255 	d->r = dsl_run_sub(d);
256 }
257 #endif
258 #if ! defined(PROG_DISABLE_GUI) && ! defined(PROG_DISABLE_MENU)
dsl_cb_menu_item_select(__UNUSED__ struct w_par * w,struct d_par * d)259 void dsl_cb_menu_item_select(__UNUSED__ struct w_par *w, struct d_par *d) {
260 	d->r = dsl_run_sub(d);
261 }
262 #endif
263 #if ! defined(PROG_DISABLE_INPUT)
dsl_cb_input_button_press(__UNUSED__ struct w_par * w,struct d_par * d)264 void dsl_cb_input_button_press(__UNUSED__ struct w_par *w, struct d_par *d) {
265 	d->r = dsl_run_sub(d);
266 }
267 
dsl_cb_input_button_release(__UNUSED__ struct w_par * w,struct d_par * d)268 void dsl_cb_input_button_release(__UNUSED__ struct w_par *w, struct d_par *d) {
269 	d->r = dsl_run_sub(d);
270 }
271 
dsl_cb_input_key_press(__UNUSED__ struct w_par * w,struct d_par * d)272 void dsl_cb_input_key_press(__UNUSED__ struct w_par *w, struct d_par *d) {
273 	d->r = dsl_run_sub(d);
274 }
275 
dsl_cb_input_key_release(__UNUSED__ struct w_par * w,struct d_par * d)276 void dsl_cb_input_key_release(__UNUSED__ struct w_par *w, struct d_par *d) {
277 	d->r = dsl_run_sub(d);
278 }
279 
dsl_cb_input_motion_xy(__UNUSED__ struct w_par * w,struct d_par * d)280 void dsl_cb_input_motion_xy(__UNUSED__ struct w_par *w, struct d_par *d) {
281 	d->r = dsl_run_sub(d);
282 }
283 
dsl_cb_input_motion_xyz(__UNUSED__ struct w_par * w,struct d_par * d)284 void dsl_cb_input_motion_xyz(__UNUSED__ struct w_par *w, struct d_par *d) {
285 	d->r = dsl_run_sub(d);
286 }
287 
dsl_cb_input_motion_angle_xy(__UNUSED__ struct w_par * w,struct d_par * d)288 void dsl_cb_input_motion_angle_xy(__UNUSED__ struct w_par *w, struct d_par *d) {
289 	d->r = dsl_run_sub(d);
290 }
291 #endif
dsl_cb_param_uint_add(struct d_par * d,unsigned int n,unsigned int f)292 void dsl_cb_param_uint_add(struct d_par *d, unsigned int n, unsigned int f) {
293 	d->dp[f].c = DSL_PARAM_TYPE_NUMBER;
294 	d->dp[f].d = DSL_NUMBER_TYPE_UINT;
295 	d->dp[f].n = (double) n;
296 
297 	d->c = f + 1;
298 }
299 
dsl_cb_param_float_add(struct d_par * d,float n,unsigned int f)300 void dsl_cb_param_float_add(struct d_par *d, float n, unsigned int f) {
301 	d->dp[f].c = DSL_PARAM_TYPE_NUMBER;
302 	d->dp[f].d = DSL_NUMBER_TYPE_FLOAT;
303 	d->dp[f].n = (double) n;
304 
305 	d->c = f + 1;
306 }
307 
dsl_cb_param_string_add(struct d_par * d,char * n,size_t t,unsigned int f)308 void dsl_cb_param_string_add(struct d_par *d, char *n, size_t t, unsigned int f) {
309 	d->dp[f].c = DSL_PARAM_TYPE_STRING;
310 	d->dp[f].s = n;
311 	d->dp[f].t = t;
312 
313 	d->c = f + 1;
314 }
315