diff options
author | David Walter Seikel | 2013-01-13 17:29:19 +1000 |
---|---|---|
committer | David Walter Seikel | 2013-01-13 17:29:19 +1000 |
commit | 07274513e984f0b5544586c74508ccd16e7dcafa (patch) | |
tree | b32ff2a9136fbc1a4a6a0ed1e4d79cde0f5f16d9 /libraries/ecore/src/lib/ecore_x/xlib/ecore_x_e.c | |
parent | Added Irrlicht 1.8, but without all the Windows binaries. (diff) | |
download | SledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.zip SledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.tar.gz SledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.tar.bz2 SledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.tar.xz |
Remove EFL, since it's been released now.
Diffstat (limited to 'libraries/ecore/src/lib/ecore_x/xlib/ecore_x_e.c')
-rw-r--r-- | libraries/ecore/src/lib/ecore_x/xlib/ecore_x_e.c | 1293 |
1 files changed, 0 insertions, 1293 deletions
diff --git a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_e.c b/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_e.c deleted file mode 100644 index 4bd5218..0000000 --- a/libraries/ecore/src/lib/ecore_x/xlib/ecore_x_e.c +++ /dev/null | |||
@@ -1,1293 +0,0 @@ | |||
1 | /* | ||
2 | * OLD E hints | ||
3 | */ | ||
4 | |||
5 | #ifdef HAVE_CONFIG_H | ||
6 | # include <config.h> | ||
7 | #endif /* ifdef HAVE_CONFIG_H */ | ||
8 | |||
9 | #include "Ecore.h" | ||
10 | #include "ecore_x_private.h" | ||
11 | #include "Ecore_X.h" | ||
12 | #include "Ecore_X_Atoms.h" | ||
13 | |||
14 | EAPI void | ||
15 | ecore_x_e_init(void) | ||
16 | { | ||
17 | } | ||
18 | |||
19 | EAPI void | ||
20 | ecore_x_e_frame_size_set(Ecore_X_Window win, | ||
21 | int fl, | ||
22 | int fr, | ||
23 | int ft, | ||
24 | int fb) | ||
25 | { | ||
26 | unsigned int frames[4]; | ||
27 | |||
28 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
29 | frames[0] = fl; | ||
30 | frames[1] = fr; | ||
31 | frames[2] = ft; | ||
32 | frames[3] = fb; | ||
33 | ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_FRAME_SIZE, frames, 4); | ||
34 | } | ||
35 | |||
36 | EAPI void | ||
37 | ecore_x_e_virtual_keyboard_set(Ecore_X_Window win, | ||
38 | unsigned int is_keyboard) | ||
39 | { | ||
40 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
41 | ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD, | ||
42 | &is_keyboard, 1); | ||
43 | } | ||
44 | |||
45 | EAPI Eina_Bool | ||
46 | ecore_x_e_virtual_keyboard_get(Ecore_X_Window win) | ||
47 | { | ||
48 | unsigned int val; | ||
49 | |||
50 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
51 | if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD, | ||
52 | &val, 1)) | ||
53 | return EINA_FALSE; | ||
54 | |||
55 | return val ? EINA_TRUE : EINA_FALSE; | ||
56 | } | ||
57 | |||
58 | static Ecore_X_Virtual_Keyboard_State | ||
59 | _ecore_x_e_vkbd_state_get(Ecore_X_Atom atom) | ||
60 | { | ||
61 | if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON) | ||
62 | return ECORE_X_VIRTUAL_KEYBOARD_STATE_ON; | ||
63 | |||
64 | if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF) | ||
65 | return ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF; | ||
66 | |||
67 | if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA) | ||
68 | return ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA; | ||
69 | |||
70 | if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC) | ||
71 | return ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC; | ||
72 | |||
73 | if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN) | ||
74 | return ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN; | ||
75 | |||
76 | if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER) | ||
77 | return ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER; | ||
78 | |||
79 | if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX) | ||
80 | return ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX; | ||
81 | |||
82 | if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL) | ||
83 | return ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL; | ||
84 | |||
85 | if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD) | ||
86 | return ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD; | ||
87 | |||
88 | if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP) | ||
89 | return ECORE_X_VIRTUAL_KEYBOARD_STATE_IP; | ||
90 | |||
91 | if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST) | ||
92 | return ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST; | ||
93 | |||
94 | if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE) | ||
95 | return ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE; | ||
96 | |||
97 | if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL) | ||
98 | return ECORE_X_VIRTUAL_KEYBOARD_STATE_URL; | ||
99 | |||
100 | if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD) | ||
101 | return ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD; | ||
102 | |||
103 | if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME) | ||
104 | return ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME; | ||
105 | |||
106 | return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN; | ||
107 | } | ||
108 | |||
109 | static Ecore_X_Atom | ||
110 | _ecore_x_e_vkbd_atom_get(Ecore_X_Virtual_Keyboard_State state) | ||
111 | { | ||
112 | switch (state) | ||
113 | { | ||
114 | case ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF: | ||
115 | return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF; | ||
116 | |||
117 | case ECORE_X_VIRTUAL_KEYBOARD_STATE_ON: | ||
118 | return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON; | ||
119 | |||
120 | case ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA: | ||
121 | return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA; | ||
122 | |||
123 | case ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC: | ||
124 | return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC; | ||
125 | |||
126 | case ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN: | ||
127 | return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN; | ||
128 | |||
129 | case ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER: | ||
130 | return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER; | ||
131 | |||
132 | case ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX: | ||
133 | return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX; | ||
134 | |||
135 | case ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL: | ||
136 | return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL; | ||
137 | |||
138 | case ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD: | ||
139 | return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD; | ||
140 | |||
141 | case ECORE_X_VIRTUAL_KEYBOARD_STATE_IP: | ||
142 | return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP; | ||
143 | |||
144 | case ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST: | ||
145 | return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST; | ||
146 | |||
147 | case ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE: | ||
148 | return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE; | ||
149 | |||
150 | case ECORE_X_VIRTUAL_KEYBOARD_STATE_URL: | ||
151 | return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL; | ||
152 | |||
153 | case ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD: | ||
154 | return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD; | ||
155 | |||
156 | case ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME: | ||
157 | return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME; | ||
158 | |||
159 | default: break; | ||
160 | } | ||
161 | return 0; | ||
162 | } | ||
163 | |||
164 | EAPI void | ||
165 | ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window win, | ||
166 | Ecore_X_Virtual_Keyboard_State state) | ||
167 | { | ||
168 | Ecore_X_Atom atom = 0; | ||
169 | |||
170 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
171 | atom = _ecore_x_e_vkbd_atom_get(state); | ||
172 | ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE, | ||
173 | &atom, 1); | ||
174 | } | ||
175 | |||
176 | EAPI Ecore_X_Virtual_Keyboard_State | ||
177 | ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win) | ||
178 | { | ||
179 | Ecore_X_Atom atom; | ||
180 | |||
181 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
182 | if (!ecore_x_window_prop_atom_get(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE, | ||
183 | &atom, 1)) | ||
184 | return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN; | ||
185 | |||
186 | return _ecore_x_e_vkbd_state_get(atom); | ||
187 | } | ||
188 | |||
189 | EAPI void | ||
190 | ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window win, | ||
191 | Ecore_X_Virtual_Keyboard_State state) | ||
192 | { | ||
193 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
194 | ecore_x_client_message32_send(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE, | ||
195 | ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, | ||
196 | _ecore_x_e_vkbd_atom_get(state), | ||
197 | 0, 0, 0, 0); | ||
198 | } | ||
199 | |||
200 | static Ecore_X_Atom | ||
201 | _ecore_x_e_illume_atom_get(Ecore_X_Illume_Mode mode) | ||
202 | { | ||
203 | switch (mode) | ||
204 | { | ||
205 | case ECORE_X_ILLUME_MODE_SINGLE: | ||
206 | return ECORE_X_ATOM_E_ILLUME_MODE_SINGLE; | ||
207 | |||
208 | case ECORE_X_ILLUME_MODE_DUAL_TOP: | ||
209 | return ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP; | ||
210 | |||
211 | case ECORE_X_ILLUME_MODE_DUAL_LEFT: | ||
212 | return ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT; | ||
213 | |||
214 | default: | ||
215 | break; | ||
216 | } | ||
217 | return ECORE_X_ILLUME_MODE_UNKNOWN; | ||
218 | } | ||
219 | |||
220 | static Ecore_X_Illume_Mode | ||
221 | _ecore_x_e_illume_mode_get(Ecore_X_Atom atom) | ||
222 | { | ||
223 | if (atom == ECORE_X_ATOM_E_ILLUME_MODE_SINGLE) | ||
224 | return ECORE_X_ILLUME_MODE_SINGLE; | ||
225 | |||
226 | if (atom == ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP) | ||
227 | return ECORE_X_ILLUME_MODE_DUAL_TOP; | ||
228 | |||
229 | if (atom == ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT) | ||
230 | return ECORE_X_ILLUME_MODE_DUAL_LEFT; | ||
231 | |||
232 | return ECORE_X_ILLUME_MODE_UNKNOWN; | ||
233 | } | ||
234 | |||
235 | EAPI void | ||
236 | ecore_x_e_illume_zone_set(Ecore_X_Window win, | ||
237 | Ecore_X_Window zone) | ||
238 | { | ||
239 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
240 | ecore_x_window_prop_window_set(win, ECORE_X_ATOM_E_ILLUME_ZONE, | ||
241 | &zone, 1); | ||
242 | } | ||
243 | |||
244 | EAPI Ecore_X_Window | ||
245 | ecore_x_e_illume_zone_get(Ecore_X_Window win) | ||
246 | { | ||
247 | Ecore_X_Window zone; | ||
248 | |||
249 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
250 | if (!ecore_x_window_prop_window_get(win, ECORE_X_ATOM_E_ILLUME_ZONE, | ||
251 | &zone, 1)) | ||
252 | return 0; | ||
253 | |||
254 | return zone; | ||
255 | } | ||
256 | |||
257 | EAPI void | ||
258 | ecore_x_e_illume_zone_list_set(Ecore_X_Window win, | ||
259 | Ecore_X_Window *zones, | ||
260 | unsigned int n_zones) | ||
261 | { | ||
262 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
263 | ecore_x_window_prop_window_set(win, ECORE_X_ATOM_E_ILLUME_ZONE_LIST, | ||
264 | zones, n_zones); | ||
265 | } | ||
266 | |||
267 | EAPI void | ||
268 | ecore_x_e_illume_conformant_set(Ecore_X_Window win, | ||
269 | unsigned int is_conformant) | ||
270 | { | ||
271 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
272 | ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_CONFORMANT, | ||
273 | &is_conformant, 1); | ||
274 | } | ||
275 | |||
276 | EAPI Eina_Bool | ||
277 | ecore_x_e_illume_conformant_get(Ecore_X_Window win) | ||
278 | { | ||
279 | unsigned int val = 0; | ||
280 | |||
281 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
282 | if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_CONFORMANT, | ||
283 | &val, 1)) | ||
284 | return EINA_FALSE; | ||
285 | |||
286 | return val ? EINA_TRUE : EINA_FALSE; | ||
287 | } | ||
288 | |||
289 | EAPI void | ||
290 | ecore_x_e_illume_mode_set(Ecore_X_Window win, | ||
291 | Ecore_X_Illume_Mode mode) | ||
292 | { | ||
293 | Ecore_X_Atom atom = 0; | ||
294 | |||
295 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
296 | atom = _ecore_x_e_illume_atom_get(mode); | ||
297 | ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_MODE, | ||
298 | &atom, 1); | ||
299 | } | ||
300 | |||
301 | EAPI Ecore_X_Illume_Mode | ||
302 | ecore_x_e_illume_mode_get(Ecore_X_Window win) | ||
303 | { | ||
304 | Ecore_X_Atom atom = 0; | ||
305 | |||
306 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
307 | if (!ecore_x_window_prop_atom_get(win, ECORE_X_ATOM_E_ILLUME_MODE, &atom, 1)) | ||
308 | return ECORE_X_ILLUME_MODE_UNKNOWN; | ||
309 | |||
310 | return _ecore_x_e_illume_mode_get(atom); | ||
311 | } | ||
312 | |||
313 | EAPI void | ||
314 | ecore_x_e_illume_mode_send(Ecore_X_Window win, | ||
315 | Ecore_X_Illume_Mode mode) | ||
316 | { | ||
317 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
318 | ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_MODE, | ||
319 | ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, | ||
320 | _ecore_x_e_illume_atom_get(mode), | ||
321 | 0, 0, 0, 0); | ||
322 | } | ||
323 | |||
324 | EAPI void | ||
325 | ecore_x_e_illume_focus_back_send(Ecore_X_Window win) | ||
326 | { | ||
327 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
328 | ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_BACK, | ||
329 | ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, | ||
330 | 1, 0, 0, 0, 0); | ||
331 | } | ||
332 | |||
333 | EAPI void | ||
334 | ecore_x_e_illume_focus_forward_send(Ecore_X_Window win) | ||
335 | { | ||
336 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
337 | ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_FORWARD, | ||
338 | ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, | ||
339 | 1, 0, 0, 0, 0); | ||
340 | } | ||
341 | |||
342 | EAPI void | ||
343 | ecore_x_e_illume_focus_home_send(Ecore_X_Window win) | ||
344 | { | ||
345 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
346 | ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_HOME, | ||
347 | ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, | ||
348 | 1, 0, 0, 0, 0); | ||
349 | } | ||
350 | |||
351 | EAPI void | ||
352 | ecore_x_e_illume_close_send(Ecore_X_Window win) | ||
353 | { | ||
354 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
355 | ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_CLOSE, | ||
356 | ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, | ||
357 | 1, 0, 0, 0, 0); | ||
358 | } | ||
359 | |||
360 | EAPI void | ||
361 | ecore_x_e_illume_home_new_send(Ecore_X_Window win) | ||
362 | { | ||
363 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
364 | ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_HOME_NEW, | ||
365 | ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, | ||
366 | 1, 0, 0, 0, 0); | ||
367 | } | ||
368 | |||
369 | EAPI void | ||
370 | ecore_x_e_illume_home_del_send(Ecore_X_Window win) | ||
371 | { | ||
372 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
373 | ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_HOME_DEL, | ||
374 | ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, | ||
375 | 1, 0, 0, 0, 0); | ||
376 | } | ||
377 | |||
378 | EAPI void | ||
379 | ecore_x_e_illume_drag_set(Ecore_X_Window win, | ||
380 | unsigned int drag) | ||
381 | { | ||
382 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
383 | ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_DRAG, &drag, 1); | ||
384 | } | ||
385 | |||
386 | EAPI Eina_Bool | ||
387 | ecore_x_e_illume_drag_get(Ecore_X_Window win) | ||
388 | { | ||
389 | unsigned int val = 0; | ||
390 | |||
391 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
392 | if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_DRAG, &val, 1)) | ||
393 | return EINA_FALSE; | ||
394 | |||
395 | return val ? EINA_TRUE : EINA_FALSE; | ||
396 | } | ||
397 | |||
398 | EAPI void | ||
399 | ecore_x_e_illume_drag_locked_set(Ecore_X_Window win, | ||
400 | unsigned int is_locked) | ||
401 | { | ||
402 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
403 | ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED, | ||
404 | &is_locked, 1); | ||
405 | } | ||
406 | |||
407 | EAPI Eina_Bool | ||
408 | ecore_x_e_illume_drag_locked_get(Ecore_X_Window win) | ||
409 | { | ||
410 | unsigned int val = 0; | ||
411 | |||
412 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
413 | if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED, | ||
414 | &val, 1)) | ||
415 | return EINA_FALSE; | ||
416 | |||
417 | return val ? EINA_TRUE : EINA_FALSE; | ||
418 | } | ||
419 | |||
420 | EAPI void | ||
421 | ecore_x_e_illume_drag_start_send(Ecore_X_Window win) | ||
422 | { | ||
423 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
424 | ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_DRAG_START, | ||
425 | ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, | ||
426 | 1, 0, 0, 0, 0); | ||
427 | } | ||
428 | |||
429 | EAPI void | ||
430 | ecore_x_e_illume_drag_end_send(Ecore_X_Window win) | ||
431 | { | ||
432 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
433 | ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_DRAG_END, | ||
434 | ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, | ||
435 | 1, 0, 0, 0, 0); | ||
436 | } | ||
437 | |||
438 | EAPI void | ||
439 | ecore_x_e_illume_indicator_geometry_set(Ecore_X_Window win, | ||
440 | int x, | ||
441 | int y, | ||
442 | int w, | ||
443 | int h) | ||
444 | { | ||
445 | unsigned int geom[4]; | ||
446 | |||
447 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
448 | geom[0] = x; | ||
449 | geom[1] = y; | ||
450 | geom[2] = w; | ||
451 | geom[3] = h; | ||
452 | ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY, | ||
453 | geom, 4); | ||
454 | } | ||
455 | |||
456 | EAPI Eina_Bool | ||
457 | ecore_x_e_illume_indicator_geometry_get(Ecore_X_Window win, | ||
458 | int *x, | ||
459 | int *y, | ||
460 | int *w, | ||
461 | int *h) | ||
462 | { | ||
463 | int ret = 0; | ||
464 | unsigned int geom[4]; | ||
465 | |||
466 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
467 | ret = | ||
468 | ecore_x_window_prop_card32_get(win, | ||
469 | ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY, | ||
470 | geom, 4); | ||
471 | if (ret != 4) | ||
472 | return EINA_FALSE; | ||
473 | |||
474 | if (x) | ||
475 | *x = geom[0]; | ||
476 | |||
477 | if (y) | ||
478 | *y = geom[1]; | ||
479 | |||
480 | if (w) | ||
481 | *w = geom[2]; | ||
482 | |||
483 | if (h) | ||
484 | *h = geom[3]; | ||
485 | |||
486 | return EINA_TRUE; | ||
487 | } | ||
488 | |||
489 | EAPI void | ||
490 | ecore_x_e_illume_softkey_geometry_set(Ecore_X_Window win, | ||
491 | int x, | ||
492 | int y, | ||
493 | int w, | ||
494 | int h) | ||
495 | { | ||
496 | unsigned int geom[4]; | ||
497 | |||
498 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
499 | geom[0] = x; | ||
500 | geom[1] = y; | ||
501 | geom[2] = w; | ||
502 | geom[3] = h; | ||
503 | ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY, | ||
504 | geom, 4); | ||
505 | } | ||
506 | |||
507 | EAPI Eina_Bool | ||
508 | ecore_x_e_illume_softkey_geometry_get(Ecore_X_Window win, | ||
509 | int *x, | ||
510 | int *y, | ||
511 | int *w, | ||
512 | int *h) | ||
513 | { | ||
514 | int ret = 0; | ||
515 | unsigned int geom[4]; | ||
516 | |||
517 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
518 | ret = | ||
519 | ecore_x_window_prop_card32_get(win, | ||
520 | ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY, | ||
521 | geom, 4); | ||
522 | if (ret != 4) | ||
523 | return EINA_FALSE; | ||
524 | |||
525 | if (x) | ||
526 | *x = geom[0]; | ||
527 | |||
528 | if (y) | ||
529 | *y = geom[1]; | ||
530 | |||
531 | if (w) | ||
532 | *w = geom[2]; | ||
533 | |||
534 | if (h) | ||
535 | *h = geom[3]; | ||
536 | |||
537 | return EINA_TRUE; | ||
538 | } | ||
539 | |||
540 | EAPI void | ||
541 | ecore_x_e_illume_keyboard_geometry_set(Ecore_X_Window win, | ||
542 | int x, | ||
543 | int y, | ||
544 | int w, | ||
545 | int h) | ||
546 | { | ||
547 | unsigned int geom[4]; | ||
548 | |||
549 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
550 | geom[0] = x; | ||
551 | geom[1] = y; | ||
552 | geom[2] = w; | ||
553 | geom[3] = h; | ||
554 | ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY, | ||
555 | geom, 4); | ||
556 | } | ||
557 | |||
558 | EAPI Eina_Bool | ||
559 | ecore_x_e_illume_keyboard_geometry_get(Ecore_X_Window win, | ||
560 | int *x, | ||
561 | int *y, | ||
562 | int *w, | ||
563 | int *h) | ||
564 | { | ||
565 | int ret = 0; | ||
566 | unsigned int geom[4]; | ||
567 | |||
568 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
569 | ret = | ||
570 | ecore_x_window_prop_card32_get(win, | ||
571 | ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY, | ||
572 | geom, 4); | ||
573 | if (ret != 4) | ||
574 | return EINA_FALSE; | ||
575 | |||
576 | if (x) | ||
577 | *x = geom[0]; | ||
578 | |||
579 | if (y) | ||
580 | *y = geom[1]; | ||
581 | |||
582 | if (w) | ||
583 | *w = geom[2]; | ||
584 | |||
585 | if (h) | ||
586 | *h = geom[3]; | ||
587 | |||
588 | return EINA_TRUE; | ||
589 | } | ||
590 | |||
591 | static Ecore_X_Atom | ||
592 | _ecore_x_e_quickpanel_atom_get(Ecore_X_Illume_Quickpanel_State state) | ||
593 | { | ||
594 | switch (state) | ||
595 | { | ||
596 | case ECORE_X_ILLUME_QUICKPANEL_STATE_ON: | ||
597 | return ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON; | ||
598 | |||
599 | case ECORE_X_ILLUME_QUICKPANEL_STATE_OFF: | ||
600 | return ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF; | ||
601 | |||
602 | default: | ||
603 | break; | ||
604 | } | ||
605 | return 0; | ||
606 | } | ||
607 | |||
608 | static Ecore_X_Illume_Quickpanel_State | ||
609 | _ecore_x_e_quickpanel_state_get(Ecore_X_Atom atom) | ||
610 | { | ||
611 | if (atom == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON) | ||
612 | return ECORE_X_ILLUME_QUICKPANEL_STATE_ON; | ||
613 | |||
614 | if (atom == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF) | ||
615 | return ECORE_X_ILLUME_QUICKPANEL_STATE_OFF; | ||
616 | |||
617 | return ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN; | ||
618 | } | ||
619 | |||
620 | EAPI void | ||
621 | ecore_x_e_illume_quickpanel_set(Ecore_X_Window win, | ||
622 | unsigned int is_quickpanel) | ||
623 | { | ||
624 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
625 | ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL, | ||
626 | &is_quickpanel, 1); | ||
627 | } | ||
628 | |||
629 | EAPI Eina_Bool | ||
630 | ecore_x_e_illume_quickpanel_get(Ecore_X_Window win) | ||
631 | { | ||
632 | unsigned int val = 0; | ||
633 | |||
634 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
635 | if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL, | ||
636 | &val, 1)) | ||
637 | return EINA_FALSE; | ||
638 | |||
639 | return val ? EINA_TRUE : EINA_FALSE; | ||
640 | } | ||
641 | |||
642 | EAPI void | ||
643 | ecore_x_e_illume_quickpanel_state_set(Ecore_X_Window win, | ||
644 | Ecore_X_Illume_Quickpanel_State state) | ||
645 | { | ||
646 | Ecore_X_Atom atom = 0; | ||
647 | |||
648 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
649 | atom = _ecore_x_e_quickpanel_atom_get(state); | ||
650 | ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE, | ||
651 | &atom, 1); | ||
652 | } | ||
653 | |||
654 | EAPI Ecore_X_Illume_Quickpanel_State | ||
655 | ecore_x_e_illume_quickpanel_state_get(Ecore_X_Window win) | ||
656 | { | ||
657 | Ecore_X_Atom atom; | ||
658 | |||
659 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
660 | if (!ecore_x_window_prop_atom_get(win, | ||
661 | ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE, | ||
662 | &atom, 1)) | ||
663 | return ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN; | ||
664 | |||
665 | return _ecore_x_e_quickpanel_state_get(atom); | ||
666 | } | ||
667 | |||
668 | EAPI void | ||
669 | ecore_x_e_illume_quickpanel_state_send(Ecore_X_Window win, | ||
670 | Ecore_X_Illume_Quickpanel_State state) | ||
671 | { | ||
672 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
673 | ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE, | ||
674 | ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, | ||
675 | _ecore_x_e_quickpanel_atom_get(state), | ||
676 | 0, 0, 0, 0); | ||
677 | } | ||
678 | |||
679 | EAPI void | ||
680 | ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win) | ||
681 | { | ||
682 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
683 | ecore_x_client_message32_send(win, | ||
684 | ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE_TOGGLE, | ||
685 | ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, | ||
686 | 0, 0, 0, 0, 0); | ||
687 | } | ||
688 | |||
689 | EAPI void | ||
690 | ecore_x_e_illume_quickpanel_priority_major_set(Ecore_X_Window win, | ||
691 | unsigned int priority) | ||
692 | { | ||
693 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
694 | ecore_x_window_prop_card32_set(win, | ||
695 | ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR, | ||
696 | &priority, 1); | ||
697 | } | ||
698 | |||
699 | EAPI int | ||
700 | ecore_x_e_illume_quickpanel_priority_major_get(Ecore_X_Window win) | ||
701 | { | ||
702 | unsigned int val = 0; | ||
703 | |||
704 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
705 | if (!ecore_x_window_prop_card32_get(win, | ||
706 | ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR, | ||
707 | &val, 1)) | ||
708 | return 0; | ||
709 | |||
710 | return val; | ||
711 | } | ||
712 | |||
713 | EAPI void | ||
714 | ecore_x_e_illume_quickpanel_priority_minor_set(Ecore_X_Window win, | ||
715 | unsigned int priority) | ||
716 | { | ||
717 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
718 | ecore_x_window_prop_card32_set(win, | ||
719 | ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR, | ||
720 | &priority, 1); | ||
721 | } | ||
722 | |||
723 | EAPI int | ||
724 | ecore_x_e_illume_quickpanel_priority_minor_get(Ecore_X_Window win) | ||
725 | { | ||
726 | unsigned int val = 0; | ||
727 | |||
728 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
729 | if (!ecore_x_window_prop_card32_get(win, | ||
730 | ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR, | ||
731 | &val, 1)) | ||
732 | return 0; | ||
733 | |||
734 | return val; | ||
735 | } | ||
736 | |||
737 | EAPI void | ||
738 | ecore_x_e_illume_quickpanel_zone_set(Ecore_X_Window win, | ||
739 | unsigned int zone) | ||
740 | { | ||
741 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
742 | ecore_x_window_prop_card32_set(win, | ||
743 | ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE, | ||
744 | &zone, 1); | ||
745 | } | ||
746 | |||
747 | EAPI int | ||
748 | ecore_x_e_illume_quickpanel_zone_get(Ecore_X_Window win) | ||
749 | { | ||
750 | unsigned int val = 0; | ||
751 | |||
752 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
753 | if (!ecore_x_window_prop_card32_get(win, | ||
754 | ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE, | ||
755 | &val, 1)) | ||
756 | return 0; | ||
757 | |||
758 | return val; | ||
759 | } | ||
760 | |||
761 | EAPI void | ||
762 | ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win) | ||
763 | { | ||
764 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
765 | ecore_x_client_message32_send(win, | ||
766 | ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE, | ||
767 | ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, | ||
768 | 1, 0, 0, 0, 0); | ||
769 | } | ||
770 | |||
771 | static Ecore_X_Atom | ||
772 | _ecore_x_e_clipboard_atom_get(Ecore_X_Illume_Clipboard_State state) | ||
773 | { | ||
774 | switch (state) | ||
775 | { | ||
776 | case ECORE_X_ILLUME_CLIPBOARD_STATE_ON: | ||
777 | return ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON; | ||
778 | case ECORE_X_ILLUME_CLIPBOARD_STATE_OFF: | ||
779 | return ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF; | ||
780 | default: | ||
781 | break; | ||
782 | } | ||
783 | return 0; | ||
784 | } | ||
785 | |||
786 | static Ecore_X_Illume_Clipboard_State | ||
787 | _ecore_x_e_clipboard_state_get(Ecore_X_Atom atom) | ||
788 | { | ||
789 | if (atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON) | ||
790 | return ECORE_X_ILLUME_CLIPBOARD_STATE_ON; | ||
791 | |||
792 | if (atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF) | ||
793 | return ECORE_X_ILLUME_CLIPBOARD_STATE_OFF; | ||
794 | |||
795 | return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN; | ||
796 | } | ||
797 | |||
798 | EAPI void | ||
799 | ecore_x_e_illume_clipboard_state_set(Ecore_X_Window win, | ||
800 | Ecore_X_Illume_Clipboard_State state) | ||
801 | { | ||
802 | Ecore_X_Atom atom = 0; | ||
803 | |||
804 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
805 | atom = _ecore_x_e_clipboard_atom_get(state); | ||
806 | |||
807 | ecore_x_window_prop_atom_set(win, | ||
808 | ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE, | ||
809 | &atom, 1); | ||
810 | } | ||
811 | |||
812 | EAPI Ecore_X_Illume_Clipboard_State | ||
813 | ecore_x_e_illume_clipboard_state_get(Ecore_X_Window win) | ||
814 | { | ||
815 | Ecore_X_Atom atom = 0; | ||
816 | |||
817 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
818 | |||
819 | if (!ecore_x_window_prop_atom_get(win, | ||
820 | ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE, | ||
821 | &atom, 1)) | ||
822 | return ECORE_X_ILLUME_CLIPBOARD_STATE_UNKNOWN; | ||
823 | return _ecore_x_e_clipboard_state_get(atom); | ||
824 | } | ||
825 | |||
826 | EAPI void | ||
827 | ecore_x_e_illume_clipboard_geometry_set(Ecore_X_Window win, | ||
828 | int x, int y, int w, int h) | ||
829 | { | ||
830 | unsigned int geom[4]; | ||
831 | |||
832 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
833 | geom[0] = x; | ||
834 | geom[1] = y; | ||
835 | geom[2] = w; | ||
836 | geom[3] = h; | ||
837 | ecore_x_window_prop_card32_set(win, | ||
838 | ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY, | ||
839 | geom, 4); | ||
840 | } | ||
841 | |||
842 | EAPI Eina_Bool | ||
843 | ecore_x_e_illume_clipboard_geometry_get(Ecore_X_Window win, | ||
844 | int *x, int *y, int *w, int *h) | ||
845 | { | ||
846 | int ret = 0; | ||
847 | unsigned int geom[4]; | ||
848 | |||
849 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
850 | ret = | ||
851 | ecore_x_window_prop_card32_get(win, | ||
852 | ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY, | ||
853 | geom, 4); | ||
854 | if (ret != 4) return EINA_FALSE; | ||
855 | |||
856 | if (x) *x = geom[0]; | ||
857 | if (y) *y = geom[1]; | ||
858 | if (w) *w = geom[2]; | ||
859 | if (h) *h = geom[3]; | ||
860 | |||
861 | return EINA_TRUE; | ||
862 | } | ||
863 | |||
864 | EAPI void | ||
865 | ecore_x_e_comp_sync_counter_set(Ecore_X_Window win, | ||
866 | Ecore_X_Sync_Counter counter) | ||
867 | { | ||
868 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
869 | if (counter) | ||
870 | ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER, | ||
871 | ECORE_X_ATOM_CARDINAL, &counter, 1); | ||
872 | else | ||
873 | ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER); | ||
874 | } | ||
875 | |||
876 | EAPI Ecore_X_Sync_Counter | ||
877 | ecore_x_e_comp_sync_counter_get(Ecore_X_Window win) | ||
878 | { | ||
879 | int ret = 0; | ||
880 | Ecore_X_Sync_Counter counter = 0; | ||
881 | |||
882 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
883 | ret = | ||
884 | ecore_x_window_prop_xid_get(win, | ||
885 | ECORE_X_ATOM_E_COMP_SYNC_COUNTER, | ||
886 | ECORE_X_ATOM_CARDINAL, | ||
887 | &counter, 1); | ||
888 | if (ret != 1) | ||
889 | return 0; | ||
890 | |||
891 | return counter; | ||
892 | } | ||
893 | |||
894 | EAPI void | ||
895 | ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root, | ||
896 | Ecore_X_Window win) | ||
897 | { | ||
898 | XEvent xev; | ||
899 | |||
900 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
901 | if (!root) | ||
902 | root = DefaultRootWindow(_ecore_x_disp); | ||
903 | |||
904 | xev.xclient.type = ClientMessage; | ||
905 | xev.xclient.display = _ecore_x_disp; | ||
906 | xev.xclient.window = win; | ||
907 | xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE; | ||
908 | xev.xclient.format = 32; | ||
909 | xev.xclient.data.l[0] = win; | ||
910 | xev.xclient.data.l[1] = 0; // version | ||
911 | xev.xclient.data.l[2] = 0; // later | ||
912 | xev.xclient.data.l[3] = 0; // later | ||
913 | xev.xclient.data.l[4] = 0; // later | ||
914 | |||
915 | XSendEvent(_ecore_x_disp, root, False, | ||
916 | SubstructureRedirectMask | SubstructureNotifyMask, | ||
917 | &xev); | ||
918 | } | ||
919 | |||
920 | EAPI void | ||
921 | ecore_x_e_comp_sync_draw_size_done_send(Ecore_X_Window root, | ||
922 | Ecore_X_Window win, | ||
923 | int w, | ||
924 | int h) | ||
925 | { | ||
926 | XEvent xev; | ||
927 | |||
928 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
929 | if (!root) | ||
930 | root = DefaultRootWindow(_ecore_x_disp); | ||
931 | |||
932 | xev.xclient.type = ClientMessage; | ||
933 | xev.xclient.display = _ecore_x_disp; | ||
934 | xev.xclient.window = win; | ||
935 | xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE; | ||
936 | xev.xclient.format = 32; | ||
937 | xev.xclient.data.l[0] = win; | ||
938 | xev.xclient.data.l[1] = 1; // version | ||
939 | xev.xclient.data.l[2] = w; // win width at draw time | ||
940 | xev.xclient.data.l[3] = h; // win height at draw time | ||
941 | xev.xclient.data.l[4] = 0; // later | ||
942 | |||
943 | XSendEvent(_ecore_x_disp, root, False, | ||
944 | SubstructureRedirectMask | SubstructureNotifyMask, | ||
945 | &xev); | ||
946 | } | ||
947 | |||
948 | EAPI void | ||
949 | ecore_x_e_comp_sync_supported_set(Ecore_X_Window root, | ||
950 | Eina_Bool enabled) | ||
951 | { | ||
952 | Ecore_X_Window win; | ||
953 | |||
954 | if (!root) | ||
955 | root = DefaultRootWindow(_ecore_x_disp); | ||
956 | |||
957 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
958 | if (enabled) | ||
959 | { | ||
960 | win = ecore_x_window_new(root, 1, 2, 3, 4); | ||
961 | ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED, | ||
962 | ECORE_X_ATOM_WINDOW, &win, 1); | ||
963 | ecore_x_window_prop_xid_set(root, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED, | ||
964 | ECORE_X_ATOM_WINDOW, &win, 1); | ||
965 | } | ||
966 | else | ||
967 | { | ||
968 | int ret; | ||
969 | |||
970 | ret = | ||
971 | ecore_x_window_prop_xid_get(root, | ||
972 | ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED, | ||
973 | ECORE_X_ATOM_WINDOW, | ||
974 | &win, 1); | ||
975 | if ((ret == 1) && (win)) | ||
976 | { | ||
977 | ecore_x_window_prop_property_del( | ||
978 | root, | ||
979 | ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED); | ||
980 | ecore_x_window_free(win); | ||
981 | } | ||
982 | } | ||
983 | } | ||
984 | |||
985 | EAPI Eina_Bool | ||
986 | ecore_x_e_comp_sync_supported_get(Ecore_X_Window root) | ||
987 | { | ||
988 | Ecore_X_Window win, win2; | ||
989 | int ret; | ||
990 | |||
991 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
992 | if (!root) | ||
993 | root = DefaultRootWindow(_ecore_x_disp); | ||
994 | |||
995 | ret = | ||
996 | ecore_x_window_prop_xid_get(root, | ||
997 | ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED, | ||
998 | ECORE_X_ATOM_WINDOW, | ||
999 | &win, 1); | ||
1000 | if ((ret == 1) && (win)) | ||
1001 | { | ||
1002 | ret = | ||
1003 | ecore_x_window_prop_xid_get(win, | ||
1004 | ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED, | ||
1005 | ECORE_X_ATOM_WINDOW, | ||
1006 | &win2, 1); | ||
1007 | if ((ret == 1) && (win2 == win)) | ||
1008 | return EINA_TRUE; | ||
1009 | } | ||
1010 | |||
1011 | return EINA_FALSE; | ||
1012 | } | ||
1013 | |||
1014 | EAPI void | ||
1015 | ecore_x_e_comp_sync_begin_send(Ecore_X_Window win) | ||
1016 | { | ||
1017 | XEvent xev; | ||
1018 | |||
1019 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
1020 | xev.xclient.type = ClientMessage; | ||
1021 | xev.xclient.display = _ecore_x_disp; | ||
1022 | xev.xclient.window = win; | ||
1023 | xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_BEGIN; | ||
1024 | xev.xclient.format = 32; | ||
1025 | xev.xclient.data.l[0] = win; | ||
1026 | xev.xclient.data.l[1] = 0; // later | ||
1027 | xev.xclient.data.l[2] = 0; // later | ||
1028 | xev.xclient.data.l[3] = 0; // later | ||
1029 | xev.xclient.data.l[4] = 0; // later | ||
1030 | |||
1031 | XSendEvent(_ecore_x_disp, win, False, | ||
1032 | NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask, | ||
1033 | &xev); | ||
1034 | } | ||
1035 | |||
1036 | EAPI void | ||
1037 | ecore_x_e_comp_sync_end_send(Ecore_X_Window win) | ||
1038 | { | ||
1039 | XEvent xev; | ||
1040 | |||
1041 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
1042 | xev.xclient.type = ClientMessage; | ||
1043 | xev.xclient.display = _ecore_x_disp; | ||
1044 | xev.xclient.window = win; | ||
1045 | xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_END; | ||
1046 | xev.xclient.format = 32; | ||
1047 | xev.xclient.data.l[0] = win; | ||
1048 | xev.xclient.data.l[1] = 0; // later | ||
1049 | xev.xclient.data.l[2] = 0; // later | ||
1050 | xev.xclient.data.l[3] = 0; // later | ||
1051 | xev.xclient.data.l[4] = 0; // later | ||
1052 | |||
1053 | XSendEvent(_ecore_x_disp, win, False, | ||
1054 | NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask, | ||
1055 | &xev); | ||
1056 | } | ||
1057 | |||
1058 | EAPI void | ||
1059 | ecore_x_e_comp_sync_cancel_send(Ecore_X_Window win) | ||
1060 | { | ||
1061 | XEvent xev; | ||
1062 | |||
1063 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
1064 | xev.xclient.type = ClientMessage; | ||
1065 | xev.xclient.display = _ecore_x_disp; | ||
1066 | xev.xclient.window = win; | ||
1067 | xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_CANCEL; | ||
1068 | xev.xclient.format = 32; | ||
1069 | xev.xclient.data.l[0] = win; | ||
1070 | xev.xclient.data.l[1] = 0; // later | ||
1071 | xev.xclient.data.l[2] = 0; // later | ||
1072 | xev.xclient.data.l[3] = 0; // later | ||
1073 | xev.xclient.data.l[4] = 0; // later | ||
1074 | |||
1075 | XSendEvent(_ecore_x_disp, win, False, | ||
1076 | NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask, | ||
1077 | &xev); | ||
1078 | } | ||
1079 | |||
1080 | EAPI void | ||
1081 | ecore_x_e_comp_flush_send(Ecore_X_Window win) | ||
1082 | { | ||
1083 | XEvent xev; | ||
1084 | |||
1085 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
1086 | xev.xclient.type = ClientMessage; | ||
1087 | xev.xclient.display = _ecore_x_disp; | ||
1088 | xev.xclient.window = win; | ||
1089 | xev.xclient.message_type = ECORE_X_ATOM_E_COMP_FLUSH; | ||
1090 | xev.xclient.format = 32; | ||
1091 | xev.xclient.data.l[0] = win; | ||
1092 | xev.xclient.data.l[1] = 0; // later | ||
1093 | xev.xclient.data.l[2] = 0; // later | ||
1094 | xev.xclient.data.l[3] = 0; // later | ||
1095 | xev.xclient.data.l[4] = 0; // later | ||
1096 | |||
1097 | XSendEvent(_ecore_x_disp, win, False, | ||
1098 | NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask, | ||
1099 | &xev); | ||
1100 | } | ||
1101 | |||
1102 | EAPI void | ||
1103 | ecore_x_e_comp_dump_send(Ecore_X_Window win) | ||
1104 | { | ||
1105 | XEvent xev; | ||
1106 | |||
1107 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
1108 | xev.xclient.type = ClientMessage; | ||
1109 | xev.xclient.display = _ecore_x_disp; | ||
1110 | xev.xclient.window = win; | ||
1111 | xev.xclient.message_type = ECORE_X_ATOM_E_COMP_DUMP; | ||
1112 | xev.xclient.format = 32; | ||
1113 | xev.xclient.data.l[0] = win; | ||
1114 | xev.xclient.data.l[1] = 0; // later | ||
1115 | xev.xclient.data.l[2] = 0; // later | ||
1116 | xev.xclient.data.l[3] = 0; // later | ||
1117 | xev.xclient.data.l[4] = 0; // later | ||
1118 | |||
1119 | XSendEvent(_ecore_x_disp, win, False, | ||
1120 | NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask, | ||
1121 | &xev); | ||
1122 | } | ||
1123 | |||
1124 | EAPI void | ||
1125 | ecore_x_e_comp_pixmap_set(Ecore_X_Window win, | ||
1126 | Ecore_X_Pixmap pixmap) | ||
1127 | { | ||
1128 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
1129 | if (pixmap) | ||
1130 | ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_PIXMAP, | ||
1131 | ECORE_X_ATOM_PIXMAP, &pixmap, 1); | ||
1132 | else | ||
1133 | ecore_x_window_prop_property_del(win, pixmap); | ||
1134 | } | ||
1135 | |||
1136 | EAPI Ecore_X_Pixmap | ||
1137 | ecore_x_e_comp_pixmap_get(Ecore_X_Window win) | ||
1138 | { | ||
1139 | int ret = 0; | ||
1140 | Ecore_X_Pixmap pixmap = 0; | ||
1141 | |||
1142 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
1143 | ret = | ||
1144 | ecore_x_window_prop_xid_get(win, | ||
1145 | ECORE_X_ATOM_E_COMP_PIXMAP, | ||
1146 | ECORE_X_ATOM_PIXMAP, | ||
1147 | &pixmap, 1); | ||
1148 | if (ret != 1) | ||
1149 | return 0; | ||
1150 | |||
1151 | return pixmap; | ||
1152 | } | ||
1153 | |||
1154 | static Ecore_X_Atom | ||
1155 | _ecore_x_e_indicator_atom_get(Ecore_X_Illume_Indicator_State state) | ||
1156 | { | ||
1157 | switch (state) | ||
1158 | { | ||
1159 | case ECORE_X_ILLUME_INDICATOR_STATE_ON: | ||
1160 | return ECORE_X_ATOM_E_ILLUME_INDICATOR_ON; | ||
1161 | |||
1162 | case ECORE_X_ILLUME_INDICATOR_STATE_OFF: | ||
1163 | return ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF; | ||
1164 | |||
1165 | default: | ||
1166 | break; | ||
1167 | } | ||
1168 | return 0; | ||
1169 | } | ||
1170 | |||
1171 | static Ecore_X_Illume_Indicator_State | ||
1172 | _ecore_x_e_indicator_state_get(Ecore_X_Atom atom) | ||
1173 | { | ||
1174 | if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_ON) | ||
1175 | return ECORE_X_ILLUME_INDICATOR_STATE_ON; | ||
1176 | |||
1177 | if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF) | ||
1178 | return ECORE_X_ILLUME_INDICATOR_STATE_OFF; | ||
1179 | |||
1180 | return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN; | ||
1181 | } | ||
1182 | |||
1183 | EAPI void | ||
1184 | ecore_x_e_illume_indicator_state_set(Ecore_X_Window win, | ||
1185 | Ecore_X_Illume_Indicator_State state) | ||
1186 | { | ||
1187 | Ecore_X_Atom atom = 0; | ||
1188 | |||
1189 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
1190 | atom = _ecore_x_e_indicator_atom_get(state); | ||
1191 | ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE, | ||
1192 | &atom, 1); | ||
1193 | } | ||
1194 | |||
1195 | EAPI Ecore_X_Illume_Indicator_State | ||
1196 | ecore_x_e_illume_indicator_state_get(Ecore_X_Window win) | ||
1197 | { | ||
1198 | Ecore_X_Atom atom; | ||
1199 | |||
1200 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
1201 | if (!ecore_x_window_prop_atom_get(win, | ||
1202 | ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE, | ||
1203 | &atom, 1)) | ||
1204 | return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN; | ||
1205 | |||
1206 | return _ecore_x_e_indicator_state_get(atom); | ||
1207 | } | ||
1208 | |||
1209 | EAPI void | ||
1210 | ecore_x_e_illume_indicator_state_send(Ecore_X_Window win, | ||
1211 | Ecore_X_Illume_Indicator_State state) | ||
1212 | { | ||
1213 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
1214 | ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE, | ||
1215 | ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, | ||
1216 | _ecore_x_e_indicator_atom_get(state), | ||
1217 | 0, 0, 0, 0); | ||
1218 | } | ||
1219 | |||
1220 | static Ecore_X_Atom | ||
1221 | _ecore_x_e_indicator_opacity_atom_get(Ecore_X_Illume_Indicator_Opacity_Mode mode) | ||
1222 | { | ||
1223 | switch (mode) | ||
1224 | { | ||
1225 | case ECORE_X_ILLUME_INDICATOR_OPAQUE: | ||
1226 | return ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE; | ||
1227 | |||
1228 | case ECORE_X_ILLUME_INDICATOR_TRANSLUCENT: | ||
1229 | return ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT; | ||
1230 | |||
1231 | case ECORE_X_ILLUME_INDICATOR_TRANSPARENT: | ||
1232 | return ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT; | ||
1233 | |||
1234 | default: | ||
1235 | break; | ||
1236 | } | ||
1237 | return 0; | ||
1238 | } | ||
1239 | |||
1240 | static Ecore_X_Illume_Indicator_Opacity_Mode | ||
1241 | _ecore_x_e_indicator_opacity_get(Ecore_X_Atom atom) | ||
1242 | { | ||
1243 | if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE) | ||
1244 | return ECORE_X_ILLUME_INDICATOR_OPAQUE; | ||
1245 | |||
1246 | if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT) | ||
1247 | return ECORE_X_ILLUME_INDICATOR_TRANSLUCENT; | ||
1248 | |||
1249 | if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT) | ||
1250 | return ECORE_X_ILLUME_INDICATOR_TRANSPARENT; | ||
1251 | |||
1252 | return ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN; | ||
1253 | } | ||
1254 | |||
1255 | EAPI void | ||
1256 | ecore_x_e_illume_indicator_opacity_set(Ecore_X_Window win, | ||
1257 | Ecore_X_Illume_Indicator_Opacity_Mode mode) | ||
1258 | { | ||
1259 | Ecore_X_Atom atom = 0; | ||
1260 | |||
1261 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
1262 | atom = _ecore_x_e_indicator_opacity_atom_get(mode); | ||
1263 | ecore_x_window_prop_atom_set(win, | ||
1264 | ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE, | ||
1265 | &atom, 1); | ||
1266 | } | ||
1267 | |||
1268 | EAPI Ecore_X_Illume_Indicator_Opacity_Mode | ||
1269 | ecore_x_e_illume_indicator_opacity_get(Ecore_X_Window win) | ||
1270 | { | ||
1271 | Ecore_X_Atom atom; | ||
1272 | |||
1273 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
1274 | if (!ecore_x_window_prop_atom_get(win, | ||
1275 | ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE, | ||
1276 | &atom, 1)) | ||
1277 | return ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN; | ||
1278 | |||
1279 | return _ecore_x_e_indicator_opacity_get(atom); | ||
1280 | } | ||
1281 | |||
1282 | EAPI void | ||
1283 | ecore_x_e_illume_indicator_opacity_send(Ecore_X_Window win, | ||
1284 | Ecore_X_Illume_Indicator_Opacity_Mode mode) | ||
1285 | { | ||
1286 | LOGFN(__FILE__, __LINE__, __FUNCTION__); | ||
1287 | ecore_x_client_message32_send(win, | ||
1288 | ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE, | ||
1289 | ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, | ||
1290 | _ecore_x_e_indicator_opacity_atom_get(mode), | ||
1291 | 0, 0, 0, 0); | ||
1292 | } | ||
1293 | |||