1 #include "ecore_xcb_private.h"
3 /* local function prototypes */
4 static Ecore_X_Atom _ecore_xcb_e_vkbd_atom_get(Ecore_X_Virtual_Keyboard_State state);
5 static Ecore_X_Virtual_Keyboard_State _ecore_xcb_e_vkbd_state_get(Ecore_X_Atom atom);
6 static Ecore_X_Atom _ecore_xcb_e_quickpanel_atom_get(Ecore_X_Illume_Quickpanel_State state);
7 static Ecore_X_Illume_Quickpanel_State _ecore_xcb_e_quickpanel_state_get(Ecore_X_Atom atom);
8 static Ecore_X_Atom _ecore_xcb_e_illume_atom_get(Ecore_X_Illume_Mode mode);
9 static Ecore_X_Illume_Mode _ecore_xcb_e_illume_mode_get(Ecore_X_Atom atom);
10 static Ecore_X_Atom _ecore_xcb_e_indicator_atom_get(Ecore_X_Illume_Indicator_State state);
11 static Ecore_X_Illume_Indicator_State _ecore_xcb_e_indicator_state_get(Ecore_X_Atom atom);
19 ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root,
22 xcb_client_message_event_t ev;
24 LOGFN(__FILE__, __LINE__, __FUNCTION__);
27 if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
29 memset(&ev, 0, sizeof(xcb_client_message_event_t));
31 ev.response_type = XCB_CLIENT_MESSAGE;
34 ev.type = ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE;
35 ev.data.data32[0] = win;
36 ev.data.data32[1] = 0;
37 ev.data.data32[2] = 0;
38 ev.data.data32[3] = 0;
39 ev.data.data32[4] = 0;
41 xcb_send_event(_ecore_xcb_conn, 0, root,
42 (XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT |
43 XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY), (const char *)&ev);
48 ecore_x_e_comp_sync_draw_size_done_send(Ecore_X_Window root,
53 xcb_client_message_event_t ev;
55 LOGFN(__FILE__, __LINE__, __FUNCTION__);
58 if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
60 memset(&ev, 0, sizeof(xcb_client_message_event_t));
62 ev.response_type = XCB_CLIENT_MESSAGE;
65 ev.type = ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE;
66 ev.data.data32[0] = win;
67 ev.data.data32[1] = 1;
68 ev.data.data32[2] = w;
69 ev.data.data32[3] = h;
70 ev.data.data32[4] = 0;
72 xcb_send_event(_ecore_xcb_conn, 0, root,
73 (XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT |
74 XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY), (const char *)&ev);
79 ecore_x_e_comp_sync_counter_set(Ecore_X_Window win,
80 Ecore_X_Sync_Counter counter)
82 LOGFN(__FILE__, __LINE__, __FUNCTION__);
85 ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER,
86 ECORE_X_ATOM_CARDINAL, &counter, 1);
88 ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER);
91 EAPI Ecore_X_Sync_Counter
92 ecore_x_e_comp_sync_counter_get(Ecore_X_Window win)
94 Ecore_X_Sync_Counter counter = 0;
97 LOGFN(__FILE__, __LINE__, __FUNCTION__);
99 ret = ecore_x_window_prop_xid_get(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER,
100 ECORE_X_ATOM_CARDINAL, &counter, 1);
101 if (ret != 1) return 0;
106 ecore_x_e_comp_sync_supported_get(Ecore_X_Window root)
108 Ecore_X_Window win, win2;
111 LOGFN(__FILE__, __LINE__, __FUNCTION__);
113 if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
115 ecore_x_window_prop_xid_get(root, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
116 ECORE_X_ATOM_WINDOW, &win, 1);
117 if ((ret == 1) && (win))
120 ecore_x_window_prop_xid_get(win, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
121 ECORE_X_ATOM_WINDOW, &win2, 1);
122 if ((ret == 1) && (win2 == win))
129 ecore_x_e_comp_sync_supported_set(Ecore_X_Window root,
134 LOGFN(__FILE__, __LINE__, __FUNCTION__);
136 if (!root) root = ((xcb_screen_t *)_ecore_xcb_screen)->root;
139 win = ecore_x_window_new(root, 1, 2, 3, 4);
140 ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
141 ECORE_X_ATOM_WINDOW, &win, 1);
142 ecore_x_window_prop_xid_set(root, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
143 ECORE_X_ATOM_WINDOW, &win, 1);
149 ret = ecore_x_window_prop_xid_get(root,
150 ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
151 ECORE_X_ATOM_WINDOW, &win, 1);
152 if ((ret == 1) && (win))
154 ecore_x_window_prop_property_del(root,
155 ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED);
156 ecore_x_window_free(win);
162 ecore_x_e_comp_sync_begin_send(Ecore_X_Window win)
164 xcb_client_message_event_t ev;
166 LOGFN(__FILE__, __LINE__, __FUNCTION__);
169 memset(&ev, 0, sizeof(xcb_client_message_event_t));
171 ev.response_type = XCB_CLIENT_MESSAGE;
174 ev.type = ECORE_X_ATOM_E_COMP_SYNC_BEGIN;
175 ev.data.data32[0] = win;
176 ev.data.data32[1] = 0;
177 ev.data.data32[2] = 0;
178 ev.data.data32[3] = 0;
179 ev.data.data32[4] = 0;
181 xcb_send_event(_ecore_xcb_conn, 0, win,
182 XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
187 ecore_x_e_comp_sync_end_send(Ecore_X_Window win)
189 xcb_client_message_event_t ev;
191 LOGFN(__FILE__, __LINE__, __FUNCTION__);
194 memset(&ev, 0, sizeof(xcb_client_message_event_t));
196 ev.response_type = XCB_CLIENT_MESSAGE;
199 ev.type = ECORE_X_ATOM_E_COMP_SYNC_END;
200 ev.data.data32[0] = win;
201 ev.data.data32[1] = 0;
202 ev.data.data32[2] = 0;
203 ev.data.data32[3] = 0;
204 ev.data.data32[4] = 0;
206 xcb_send_event(_ecore_xcb_conn, 0, win,
207 XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
212 ecore_x_e_comp_sync_cancel_send(Ecore_X_Window win)
214 xcb_client_message_event_t ev;
216 LOGFN(__FILE__, __LINE__, __FUNCTION__);
219 memset(&ev, 0, sizeof(xcb_client_message_event_t));
221 ev.response_type = XCB_CLIENT_MESSAGE;
224 ev.type = ECORE_X_ATOM_E_COMP_SYNC_CANCEL;
225 ev.data.data32[0] = win;
226 ev.data.data32[1] = 0;
227 ev.data.data32[2] = 0;
228 ev.data.data32[3] = 0;
229 ev.data.data32[4] = 0;
231 xcb_send_event(_ecore_xcb_conn, 0, win,
232 XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
237 ecore_x_e_comp_flush_send(Ecore_X_Window win)
239 xcb_client_message_event_t ev;
241 LOGFN(__FILE__, __LINE__, __FUNCTION__);
244 memset(&ev, 0, sizeof(xcb_client_message_event_t));
246 ev.response_type = XCB_CLIENT_MESSAGE;
249 ev.type = ECORE_X_ATOM_E_COMP_FLUSH;
250 ev.data.data32[0] = win;
251 ev.data.data32[1] = 0;
252 ev.data.data32[2] = 0;
253 ev.data.data32[3] = 0;
254 ev.data.data32[4] = 0;
256 xcb_send_event(_ecore_xcb_conn, 0, win,
257 XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
262 ecore_x_e_comp_dump_send(Ecore_X_Window win)
264 xcb_client_message_event_t ev;
266 LOGFN(__FILE__, __LINE__, __FUNCTION__);
269 memset(&ev, 0, sizeof(xcb_client_message_event_t));
271 ev.response_type = XCB_CLIENT_MESSAGE;
274 ev.type = ECORE_X_ATOM_E_COMP_DUMP;
275 ev.data.data32[0] = win;
276 ev.data.data32[1] = 0;
277 ev.data.data32[2] = 0;
278 ev.data.data32[3] = 0;
279 ev.data.data32[4] = 0;
281 xcb_send_event(_ecore_xcb_conn, 0, win,
282 XCB_EVENT_MASK_NO_EVENT, (const char *)&ev);
287 ecore_x_e_comp_pixmap_set(Ecore_X_Window win,
288 Ecore_X_Pixmap pixmap)
290 LOGFN(__FILE__, __LINE__, __FUNCTION__);
293 ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_PIXMAP,
294 ECORE_X_ATOM_PIXMAP, &pixmap, 1);
296 ecore_x_window_prop_property_del(win, pixmap);
300 ecore_x_e_comp_pixmap_get(Ecore_X_Window win)
302 Ecore_X_Pixmap pixmap = 0;
305 LOGFN(__FILE__, __LINE__, __FUNCTION__);
307 ret = ecore_x_window_prop_xid_get(win, ECORE_X_ATOM_E_COMP_PIXMAP,
308 ECORE_X_ATOM_PIXMAP, &pixmap, 1);
309 if (ret != 1) return 0;
314 ecore_x_e_frame_size_set(Ecore_X_Window win,
322 LOGFN(__FILE__, __LINE__, __FUNCTION__);
328 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_FRAME_SIZE, frames, 4);
331 EAPI Ecore_X_Virtual_Keyboard_State
332 ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win)
334 Ecore_X_Atom atom = 0;
336 LOGFN(__FILE__, __LINE__, __FUNCTION__);
338 if (!ecore_x_window_prop_atom_get(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
340 return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN;
342 return _ecore_xcb_e_vkbd_state_get(atom);
346 ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window win,
347 Ecore_X_Virtual_Keyboard_State state)
349 Ecore_X_Atom atom = 0;
351 LOGFN(__FILE__, __LINE__, __FUNCTION__);
353 atom = _ecore_xcb_e_vkbd_atom_get(state);
354 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
359 ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window win,
360 Ecore_X_Virtual_Keyboard_State state)
362 LOGFN(__FILE__, __LINE__, __FUNCTION__);
364 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
365 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
366 _ecore_xcb_e_vkbd_atom_get(state),
371 ecore_x_e_virtual_keyboard_set(Ecore_X_Window win,
372 unsigned int is_keyboard)
374 LOGFN(__FILE__, __LINE__, __FUNCTION__);
376 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD,
381 ecore_x_e_virtual_keyboard_get(Ecore_X_Window win)
383 unsigned int val = 0;
385 LOGFN(__FILE__, __LINE__, __FUNCTION__);
387 if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD,
391 return val ? EINA_TRUE : EINA_FALSE;
395 ecore_x_e_illume_quickpanel_priority_major_get(Ecore_X_Window win)
397 unsigned int val = 0;
399 LOGFN(__FILE__, __LINE__, __FUNCTION__);
401 if (!ecore_x_window_prop_card32_get(win,
402 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR,
410 ecore_x_e_illume_quickpanel_priority_major_set(Ecore_X_Window win,
411 unsigned int priority)
413 LOGFN(__FILE__, __LINE__, __FUNCTION__);
415 ecore_x_window_prop_card32_set(win,
416 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR,
421 ecore_x_e_illume_quickpanel_priority_minor_get(Ecore_X_Window win)
423 unsigned int val = 0;
425 LOGFN(__FILE__, __LINE__, __FUNCTION__);
427 if (!ecore_x_window_prop_card32_get(win,
428 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR,
436 ecore_x_e_illume_quickpanel_priority_minor_set(Ecore_X_Window win,
437 unsigned int priority)
439 LOGFN(__FILE__, __LINE__, __FUNCTION__);
441 ecore_x_window_prop_card32_set(win,
442 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR,
447 ecore_x_e_illume_quickpanel_zone_set(Ecore_X_Window win,
450 LOGFN(__FILE__, __LINE__, __FUNCTION__);
452 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE,
457 ecore_x_e_illume_quickpanel_zone_get(Ecore_X_Window win)
459 unsigned int val = 0;
461 LOGFN(__FILE__, __LINE__, __FUNCTION__);
463 if (!ecore_x_window_prop_card32_get(win,
464 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE,
472 ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win)
474 LOGFN(__FILE__, __LINE__, __FUNCTION__);
476 ecore_x_client_message32_send(win,
477 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE,
478 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
483 ecore_x_e_illume_conformant_get(Ecore_X_Window win)
485 unsigned int val = 0;
487 LOGFN(__FILE__, __LINE__, __FUNCTION__);
489 if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_CONFORMANT,
493 return val ? EINA_TRUE : EINA_FALSE;
497 ecore_x_e_illume_conformant_set(Ecore_X_Window win,
498 unsigned int is_conformant)
500 LOGFN(__FILE__, __LINE__, __FUNCTION__);
502 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_CONFORMANT,
507 ecore_x_e_illume_softkey_geometry_set(Ecore_X_Window win,
513 unsigned int geom[4];
515 LOGFN(__FILE__, __LINE__, __FUNCTION__);
521 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY,
526 ecore_x_e_illume_softkey_geometry_get(Ecore_X_Window win,
532 unsigned int geom[4];
534 LOGFN(__FILE__, __LINE__, __FUNCTION__);
541 if (ecore_x_window_prop_card32_get(win,
542 ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY,
555 ecore_x_e_illume_indicator_geometry_set(Ecore_X_Window win,
561 unsigned int geom[4];
563 LOGFN(__FILE__, __LINE__, __FUNCTION__);
569 ecore_x_window_prop_card32_set(win,
570 ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY,
575 ecore_x_e_illume_indicator_geometry_get(Ecore_X_Window win,
581 unsigned int geom[4];
583 LOGFN(__FILE__, __LINE__, __FUNCTION__);
590 if (ecore_x_window_prop_card32_get(win,
591 ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY,
604 ecore_x_e_illume_keyboard_geometry_set(Ecore_X_Window win,
610 unsigned int geom[4];
612 LOGFN(__FILE__, __LINE__, __FUNCTION__);
618 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY,
623 ecore_x_e_illume_keyboard_geometry_get(Ecore_X_Window win,
629 unsigned int geom[4];
631 LOGFN(__FILE__, __LINE__, __FUNCTION__);
638 if (ecore_x_window_prop_card32_get(win,
639 ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY,
652 ecore_x_e_illume_quickpanel_set(Ecore_X_Window win,
653 unsigned int is_quickpanel)
655 LOGFN(__FILE__, __LINE__, __FUNCTION__);
657 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL,
662 ecore_x_e_illume_quickpanel_get(Ecore_X_Window win)
664 unsigned int val = 0;
666 LOGFN(__FILE__, __LINE__, __FUNCTION__);
668 if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL,
672 return val ? EINA_TRUE : EINA_FALSE;
676 ecore_x_e_illume_quickpanel_state_set(Ecore_X_Window win,
677 Ecore_X_Illume_Quickpanel_State state)
679 Ecore_X_Atom atom = 0;
681 LOGFN(__FILE__, __LINE__, __FUNCTION__);
683 atom = _ecore_xcb_e_quickpanel_atom_get(state);
684 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE,
688 EAPI Ecore_X_Illume_Quickpanel_State
689 ecore_x_e_illume_quickpanel_state_get(Ecore_X_Window win)
691 Ecore_X_Atom atom = 0;
693 LOGFN(__FILE__, __LINE__, __FUNCTION__);
695 if (!ecore_x_window_prop_atom_get(win,
696 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE,
698 return ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN;
700 return _ecore_xcb_e_quickpanel_state_get(atom);
704 ecore_x_e_illume_quickpanel_state_send(Ecore_X_Window win,
705 Ecore_X_Illume_Quickpanel_State state)
707 LOGFN(__FILE__, __LINE__, __FUNCTION__);
708 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE,
709 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
710 _ecore_xcb_e_quickpanel_atom_get(state),
715 ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win)
717 LOGFN(__FILE__, __LINE__, __FUNCTION__);
718 ecore_x_client_message32_send(win,
719 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE_TOGGLE,
720 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
725 _ecore_xcb_e_clipboard_atom_get(Ecore_X_Illume_Clipboard_State state)
729 case ECORE_X_ILLUME_CLIPBOARD_STATE_ON:
730 return ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON;
731 case ECORE_X_ILLUME_CLIPBOARD_STATE_OFF:
732 return ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF;
739 static Ecore_X_Illume_Clipboard_State
740 _ecore_xcb_e_clipboard_state_get(Ecore_X_Atom atom)
742 if (atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON)
743 return ECORE_X_ILLUME_CLIPBOARD_STATE_ON;
745 if (atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF)
746 return ECORE_X_ILLUME_CLIPBOARD_STATE_OFF;
748 return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN;
752 ecore_x_e_illume_clipboard_state_set(Ecore_X_Window win,
753 Ecore_X_Illume_Clipboard_State state)
755 Ecore_X_Atom atom = 0;
757 LOGFN(__FILE__, __LINE__, __FUNCTION__);
758 atom = _ecore_xcb_e_clipboard_atom_get(state);
760 ecore_x_window_prop_atom_set(win,
761 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE,
765 EAPI Ecore_X_Illume_Clipboard_State
766 ecore_x_e_illume_clipboard_state_get(Ecore_X_Window win)
768 Ecore_X_Atom atom = 0;
770 LOGFN(__FILE__, __LINE__, __FUNCTION__);
772 if (!ecore_x_window_prop_atom_get(win,
773 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE,
775 return ECORE_X_ILLUME_CLIPBOARD_STATE_UNKNOWN;
776 return _ecore_xcb_e_clipboard_state_get(atom);
780 ecore_x_e_illume_clipboard_geometry_set(Ecore_X_Window win,
781 int x, int y, int w, int h)
783 unsigned int geom[4];
785 LOGFN(__FILE__, __LINE__, __FUNCTION__);
790 ecore_x_window_prop_card32_set(win,
791 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY,
796 ecore_x_e_illume_clipboard_geometry_get(Ecore_X_Window win,
797 int *x, int *y, int *w, int *h)
800 unsigned int geom[4];
802 LOGFN(__FILE__, __LINE__, __FUNCTION__);
804 ecore_x_window_prop_card32_get(win,
805 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY,
807 if (ret != 4) return EINA_FALSE;
818 ecore_x_e_illume_mode_set(Ecore_X_Window win,
819 Ecore_X_Illume_Mode mode)
821 Ecore_X_Atom atom = 0;
823 LOGFN(__FILE__, __LINE__, __FUNCTION__);
825 atom = _ecore_xcb_e_illume_atom_get(mode);
826 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_MODE, &atom, 1);
829 EAPI Ecore_X_Illume_Mode
830 ecore_x_e_illume_mode_get(Ecore_X_Window win)
832 Ecore_X_Atom atom = 0;
834 LOGFN(__FILE__, __LINE__, __FUNCTION__);
836 if (!ecore_x_window_prop_atom_get(win, ECORE_X_ATOM_E_ILLUME_MODE, &atom, 1))
837 return ECORE_X_ILLUME_MODE_UNKNOWN;
839 return _ecore_xcb_e_illume_mode_get(atom);
843 ecore_x_e_illume_mode_send(Ecore_X_Window win,
844 Ecore_X_Illume_Mode mode)
846 LOGFN(__FILE__, __LINE__, __FUNCTION__);
848 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_MODE,
849 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
850 _ecore_xcb_e_illume_atom_get(mode),
855 ecore_x_e_illume_focus_back_send(Ecore_X_Window win)
857 LOGFN(__FILE__, __LINE__, __FUNCTION__);
859 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_BACK,
860 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
865 ecore_x_e_illume_focus_forward_send(Ecore_X_Window win)
867 LOGFN(__FILE__, __LINE__, __FUNCTION__);
869 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_FORWARD,
870 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
875 ecore_x_e_illume_focus_home_send(Ecore_X_Window win)
877 LOGFN(__FILE__, __LINE__, __FUNCTION__);
879 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_HOME,
880 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
885 ecore_x_e_illume_close_send(Ecore_X_Window win)
887 LOGFN(__FILE__, __LINE__, __FUNCTION__);
889 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_CLOSE,
890 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
895 ecore_x_e_illume_home_new_send(Ecore_X_Window win)
897 LOGFN(__FILE__, __LINE__, __FUNCTION__);
899 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_HOME_NEW,
900 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
905 ecore_x_e_illume_home_del_send(Ecore_X_Window win)
907 LOGFN(__FILE__, __LINE__, __FUNCTION__);
909 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_HOME_DEL,
910 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
915 ecore_x_e_illume_access_action_next_send(Ecore_X_Window win)
917 LOGFN(__FILE__, __LINE__, __FUNCTION__);
919 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
921 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_NEXT,
926 ecore_x_e_illume_access_action_prev_send(Ecore_X_Window win)
928 LOGFN(__FILE__, __LINE__, __FUNCTION__);
930 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
932 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_PREV,
937 ecore_x_e_illume_access_action_activate_send(Ecore_X_Window win)
939 LOGFN(__FILE__, __LINE__, __FUNCTION__);
941 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
943 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_ACTIVATE,
948 ecore_x_e_illume_access_action_read_send(Ecore_X_Window win)
950 LOGFN(__FILE__, __LINE__, __FUNCTION__);
952 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
954 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ,
959 ecore_x_e_illume_access_action_read_next_send(Ecore_X_Window win)
961 LOGFN(__FILE__, __LINE__, __FUNCTION__);
963 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
965 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ_NEXT,
970 ecore_x_e_illume_access_action_read_prev_send(Ecore_X_Window win)
972 LOGFN(__FILE__, __LINE__, __FUNCTION__);
974 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL,
976 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_READ_PREV,
981 ecore_x_e_illume_drag_set(Ecore_X_Window win,
984 LOGFN(__FILE__, __LINE__, __FUNCTION__);
986 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_DRAG, &drag, 1);
990 ecore_x_e_illume_drag_locked_set(Ecore_X_Window win,
991 unsigned int is_locked)
993 LOGFN(__FILE__, __LINE__, __FUNCTION__);
995 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED,
1000 ecore_x_e_illume_drag_locked_get(Ecore_X_Window win)
1002 unsigned int val = 0;
1004 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1006 if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED,
1010 return val ? EINA_TRUE : EINA_FALSE;
1014 ecore_x_e_illume_drag_get(Ecore_X_Window win)
1016 unsigned int val = 0;
1018 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1020 if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_DRAG, &val, 1))
1023 return val ? EINA_TRUE : EINA_FALSE;
1027 ecore_x_e_illume_drag_start_send(Ecore_X_Window win)
1029 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1030 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_DRAG_START,
1031 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
1036 ecore_x_e_illume_drag_end_send(Ecore_X_Window win)
1038 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1039 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_DRAG_END,
1040 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
1045 ecore_x_e_illume_zone_set(Ecore_X_Window win,
1046 Ecore_X_Window zone)
1048 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1050 ecore_x_window_prop_window_set(win, ECORE_X_ATOM_E_ILLUME_ZONE, &zone, 1);
1054 ecore_x_e_illume_zone_get(Ecore_X_Window win)
1056 Ecore_X_Window zone;
1058 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1060 if (!ecore_x_window_prop_window_get(win, ECORE_X_ATOM_E_ILLUME_ZONE,
1068 ecore_x_e_illume_zone_list_set(Ecore_X_Window win,
1069 Ecore_X_Window *zones,
1072 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1074 ecore_x_window_prop_window_set(win, ECORE_X_ATOM_E_ILLUME_ZONE_LIST,
1078 /* local functions */
1080 _ecore_xcb_e_vkbd_atom_get(Ecore_X_Virtual_Keyboard_State state)
1084 case ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF:
1085 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF;
1087 case ECORE_X_VIRTUAL_KEYBOARD_STATE_ON:
1088 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON;
1090 case ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA:
1091 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA;
1093 case ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC:
1094 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC;
1096 case ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN:
1097 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN;
1099 case ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER:
1100 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER;
1102 case ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX:
1103 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX;
1105 case ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL:
1106 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL;
1108 case ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD:
1109 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD;
1111 case ECORE_X_VIRTUAL_KEYBOARD_STATE_IP:
1112 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP;
1114 case ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST:
1115 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST;
1117 case ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE:
1118 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE;
1120 case ECORE_X_VIRTUAL_KEYBOARD_STATE_URL:
1121 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL;
1123 case ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD:
1124 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD;
1126 case ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME:
1127 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME;
1135 static Ecore_X_Virtual_Keyboard_State
1136 _ecore_xcb_e_vkbd_state_get(Ecore_X_Atom atom)
1138 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON)
1139 return ECORE_X_VIRTUAL_KEYBOARD_STATE_ON;
1140 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF)
1141 return ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF;
1142 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA)
1143 return ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA;
1144 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC)
1145 return ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC;
1146 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN)
1147 return ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN;
1148 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER)
1149 return ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER;
1150 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX)
1151 return ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX;
1152 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL)
1153 return ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL;
1154 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD)
1155 return ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD;
1156 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP)
1157 return ECORE_X_VIRTUAL_KEYBOARD_STATE_IP;
1158 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST)
1159 return ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST;
1160 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE)
1161 return ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE;
1162 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL)
1163 return ECORE_X_VIRTUAL_KEYBOARD_STATE_URL;
1164 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD)
1165 return ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD;
1166 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME)
1167 return ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME;
1169 return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN;
1173 _ecore_xcb_e_quickpanel_atom_get(Ecore_X_Illume_Quickpanel_State state)
1177 case ECORE_X_ILLUME_QUICKPANEL_STATE_ON:
1178 return ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON;
1180 case ECORE_X_ILLUME_QUICKPANEL_STATE_OFF:
1181 return ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF;
1189 static Ecore_X_Illume_Quickpanel_State
1190 _ecore_xcb_e_quickpanel_state_get(Ecore_X_Atom atom)
1192 if (atom == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON)
1193 return ECORE_X_ILLUME_QUICKPANEL_STATE_ON;
1194 if (atom == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF)
1195 return ECORE_X_ILLUME_QUICKPANEL_STATE_OFF;
1197 return ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN;
1201 _ecore_xcb_e_illume_atom_get(Ecore_X_Illume_Mode mode)
1205 case ECORE_X_ILLUME_MODE_SINGLE:
1206 return ECORE_X_ATOM_E_ILLUME_MODE_SINGLE;
1208 case ECORE_X_ILLUME_MODE_DUAL_TOP:
1209 return ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP;
1211 case ECORE_X_ILLUME_MODE_DUAL_LEFT:
1212 return ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT;
1217 return ECORE_X_ILLUME_MODE_UNKNOWN;
1220 static Ecore_X_Illume_Mode
1221 _ecore_xcb_e_illume_mode_get(Ecore_X_Atom atom)
1223 if (atom == ECORE_X_ATOM_E_ILLUME_MODE_SINGLE)
1224 return ECORE_X_ILLUME_MODE_SINGLE;
1225 if (atom == ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP)
1226 return ECORE_X_ILLUME_MODE_DUAL_TOP;
1227 if (atom == ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT)
1228 return ECORE_X_ILLUME_MODE_DUAL_LEFT;
1230 return ECORE_X_ILLUME_MODE_UNKNOWN;
1234 _ecore_xcb_e_indicator_atom_get(Ecore_X_Illume_Indicator_State state)
1238 case ECORE_X_ILLUME_INDICATOR_STATE_ON:
1239 return ECORE_X_ATOM_E_ILLUME_INDICATOR_ON;
1241 case ECORE_X_ILLUME_INDICATOR_STATE_OFF:
1242 return ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF;
1250 static Ecore_X_Illume_Indicator_State
1251 _ecore_xcb_e_indicator_state_get(Ecore_X_Atom atom)
1253 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_ON)
1254 return ECORE_X_ILLUME_INDICATOR_STATE_ON;
1255 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF)
1256 return ECORE_X_ILLUME_INDICATOR_STATE_OFF;
1258 return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN;
1262 ecore_x_e_illume_indicator_state_set(Ecore_X_Window win,
1263 Ecore_X_Illume_Indicator_State state)
1265 Ecore_X_Atom atom = 0;
1267 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1269 atom = _ecore_xcb_e_indicator_atom_get(state);
1270 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE,
1274 EAPI Ecore_X_Illume_Indicator_State
1275 ecore_x_e_illume_indicator_state_get(Ecore_X_Window win)
1277 Ecore_X_Atom atom = 0;
1279 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1281 if (!ecore_x_window_prop_atom_get(win,
1282 ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE,
1284 return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN;
1286 return _ecore_xcb_e_indicator_state_get(atom);
1290 ecore_x_e_illume_indicator_state_send(Ecore_X_Window win,
1291 Ecore_X_Illume_Indicator_State state)
1293 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1294 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE,
1295 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
1296 _ecore_xcb_e_indicator_atom_get(state),
1301 _ecore_x_e_indicator_opacity_atom_get(Ecore_X_Illume_Indicator_Opacity_Mode mode)
1305 case ECORE_X_ILLUME_INDICATOR_OPAQUE:
1306 return ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE;
1308 case ECORE_X_ILLUME_INDICATOR_TRANSLUCENT:
1309 return ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT;
1311 case ECORE_X_ILLUME_INDICATOR_TRANSPARENT:
1312 return ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT;
1320 static Ecore_X_Illume_Indicator_Opacity_Mode
1321 _ecore_x_e_indicator_opacity_get(Ecore_X_Atom atom)
1323 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE)
1324 return ECORE_X_ILLUME_INDICATOR_OPAQUE;
1326 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT)
1327 return ECORE_X_ILLUME_INDICATOR_TRANSLUCENT;
1329 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT)
1330 return ECORE_X_ILLUME_INDICATOR_TRANSPARENT;
1332 return ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN;
1336 ecore_x_e_illume_indicator_opacity_set(Ecore_X_Window win,
1337 Ecore_X_Illume_Indicator_Opacity_Mode mode)
1339 Ecore_X_Atom atom = 0;
1341 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1342 atom = _ecore_x_e_indicator_opacity_atom_get(mode);
1343 ecore_x_window_prop_atom_set(win,
1344 ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE,
1348 EAPI Ecore_X_Illume_Indicator_Opacity_Mode
1349 ecore_x_e_illume_indicator_opacity_get(Ecore_X_Window win)
1353 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1354 if (!ecore_x_window_prop_atom_get(win,
1355 ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE,
1357 return ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN;
1359 return _ecore_x_e_indicator_opacity_get(atom);
1363 ecore_x_e_illume_indicator_opacity_send(Ecore_X_Window win,
1364 Ecore_X_Illume_Indicator_Opacity_Mode mode)
1366 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1367 ecore_x_client_message32_send(win,
1368 ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE,
1369 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
1370 _ecore_x_e_indicator_opacity_atom_get(mode),