7 #endif /* ifdef HAVE_CONFIG_H */
10 #include "ecore_x_private.h"
12 #include "Ecore_X_Atoms.h"
20 ecore_x_e_frame_size_set(Ecore_X_Window win,
26 unsigned int frames[4];
28 LOGFN(__FILE__, __LINE__, __FUNCTION__);
33 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_FRAME_SIZE, frames, 4);
37 ecore_x_e_virtual_keyboard_set(Ecore_X_Window win,
38 unsigned int is_keyboard)
40 LOGFN(__FILE__, __LINE__, __FUNCTION__);
41 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD,
46 ecore_x_e_virtual_keyboard_get(Ecore_X_Window win)
50 LOGFN(__FILE__, __LINE__, __FUNCTION__);
51 if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD,
55 return val ? EINA_TRUE : EINA_FALSE;
58 static Ecore_X_Virtual_Keyboard_State
59 _ecore_x_e_vkbd_state_get(Ecore_X_Atom atom)
61 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON)
62 return ECORE_X_VIRTUAL_KEYBOARD_STATE_ON;
64 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF)
65 return ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF;
67 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA)
68 return ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA;
70 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC)
71 return ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC;
73 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN)
74 return ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN;
76 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER)
77 return ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER;
79 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX)
80 return ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX;
82 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL)
83 return ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL;
85 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD)
86 return ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD;
88 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP)
89 return ECORE_X_VIRTUAL_KEYBOARD_STATE_IP;
91 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST)
92 return ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST;
94 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE)
95 return ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE;
97 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL)
98 return ECORE_X_VIRTUAL_KEYBOARD_STATE_URL;
100 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD)
101 return ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD;
103 if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME)
104 return ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME;
106 return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN;
110 _ecore_x_e_vkbd_atom_get(Ecore_X_Virtual_Keyboard_State state)
114 case ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF:
115 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF;
117 case ECORE_X_VIRTUAL_KEYBOARD_STATE_ON:
118 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON;
120 case ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA:
121 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA;
123 case ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC:
124 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC;
126 case ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN:
127 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN;
129 case ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER:
130 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER;
132 case ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX:
133 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX;
135 case ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL:
136 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL;
138 case ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD:
139 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD;
141 case ECORE_X_VIRTUAL_KEYBOARD_STATE_IP:
142 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP;
144 case ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST:
145 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST;
147 case ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE:
148 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE;
150 case ECORE_X_VIRTUAL_KEYBOARD_STATE_URL:
151 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL;
153 case ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD:
154 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD;
156 case ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME:
157 return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME;
165 ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window win,
166 Ecore_X_Virtual_Keyboard_State state)
168 Ecore_X_Atom atom = 0;
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,
176 EAPI Ecore_X_Virtual_Keyboard_State
177 ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win)
181 LOGFN(__FILE__, __LINE__, __FUNCTION__);
182 if (!ecore_x_window_prop_atom_get(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
184 return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN;
186 return _ecore_x_e_vkbd_state_get(atom);
190 ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window win,
191 Ecore_X_Virtual_Keyboard_State state)
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),
201 _ecore_x_e_illume_atom_get(Ecore_X_Illume_Mode mode)
205 case ECORE_X_ILLUME_MODE_SINGLE:
206 return ECORE_X_ATOM_E_ILLUME_MODE_SINGLE;
208 case ECORE_X_ILLUME_MODE_DUAL_TOP:
209 return ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP;
211 case ECORE_X_ILLUME_MODE_DUAL_LEFT:
212 return ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT;
217 return ECORE_X_ILLUME_MODE_UNKNOWN;
220 static Ecore_X_Illume_Mode
221 _ecore_x_e_illume_mode_get(Ecore_X_Atom atom)
223 if (atom == ECORE_X_ATOM_E_ILLUME_MODE_SINGLE)
224 return ECORE_X_ILLUME_MODE_SINGLE;
226 if (atom == ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP)
227 return ECORE_X_ILLUME_MODE_DUAL_TOP;
229 if (atom == ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT)
230 return ECORE_X_ILLUME_MODE_DUAL_LEFT;
232 return ECORE_X_ILLUME_MODE_UNKNOWN;
236 ecore_x_e_illume_zone_set(Ecore_X_Window win,
239 LOGFN(__FILE__, __LINE__, __FUNCTION__);
240 ecore_x_window_prop_window_set(win, ECORE_X_ATOM_E_ILLUME_ZONE,
245 ecore_x_e_illume_zone_get(Ecore_X_Window win)
249 LOGFN(__FILE__, __LINE__, __FUNCTION__);
250 if (!ecore_x_window_prop_window_get(win, ECORE_X_ATOM_E_ILLUME_ZONE,
258 ecore_x_e_illume_zone_list_set(Ecore_X_Window win,
259 Ecore_X_Window *zones,
260 unsigned int n_zones)
262 LOGFN(__FILE__, __LINE__, __FUNCTION__);
263 ecore_x_window_prop_window_set(win, ECORE_X_ATOM_E_ILLUME_ZONE_LIST,
268 ecore_x_e_illume_conformant_set(Ecore_X_Window win,
269 unsigned int is_conformant)
271 LOGFN(__FILE__, __LINE__, __FUNCTION__);
272 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_CONFORMANT,
277 ecore_x_e_illume_conformant_get(Ecore_X_Window win)
279 unsigned int val = 0;
281 LOGFN(__FILE__, __LINE__, __FUNCTION__);
282 if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_CONFORMANT,
286 return val ? EINA_TRUE : EINA_FALSE;
290 ecore_x_e_illume_mode_set(Ecore_X_Window win,
291 Ecore_X_Illume_Mode mode)
293 Ecore_X_Atom atom = 0;
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,
301 EAPI Ecore_X_Illume_Mode
302 ecore_x_e_illume_mode_get(Ecore_X_Window win)
304 Ecore_X_Atom atom = 0;
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;
310 return _ecore_x_e_illume_mode_get(atom);
314 ecore_x_e_illume_mode_send(Ecore_X_Window win,
315 Ecore_X_Illume_Mode mode)
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),
325 ecore_x_e_illume_focus_back_send(Ecore_X_Window win)
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,
334 ecore_x_e_illume_focus_forward_send(Ecore_X_Window win)
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,
343 ecore_x_e_illume_focus_home_send(Ecore_X_Window win)
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,
352 ecore_x_e_illume_close_send(Ecore_X_Window win)
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,
361 ecore_x_e_illume_home_new_send(Ecore_X_Window win)
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,
370 ecore_x_e_illume_home_del_send(Ecore_X_Window win)
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,
379 ecore_x_e_illume_drag_set(Ecore_X_Window win,
382 LOGFN(__FILE__, __LINE__, __FUNCTION__);
383 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_DRAG, &drag, 1);
387 ecore_x_e_illume_drag_get(Ecore_X_Window win)
389 unsigned int val = 0;
391 LOGFN(__FILE__, __LINE__, __FUNCTION__);
392 if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_DRAG, &val, 1))
395 return val ? EINA_TRUE : EINA_FALSE;
399 ecore_x_e_illume_drag_locked_set(Ecore_X_Window win,
400 unsigned int is_locked)
402 LOGFN(__FILE__, __LINE__, __FUNCTION__);
403 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED,
408 ecore_x_e_illume_drag_locked_get(Ecore_X_Window win)
410 unsigned int val = 0;
412 LOGFN(__FILE__, __LINE__, __FUNCTION__);
413 if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED,
417 return val ? EINA_TRUE : EINA_FALSE;
421 ecore_x_e_illume_drag_start_send(Ecore_X_Window win)
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,
430 ecore_x_e_illume_drag_end_send(Ecore_X_Window win)
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,
439 ecore_x_e_illume_indicator_geometry_set(Ecore_X_Window win,
445 unsigned int geom[4];
447 LOGFN(__FILE__, __LINE__, __FUNCTION__);
452 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY,
457 ecore_x_e_illume_indicator_geometry_get(Ecore_X_Window win,
464 unsigned int geom[4];
466 LOGFN(__FILE__, __LINE__, __FUNCTION__);
468 ecore_x_window_prop_card32_get(win,
469 ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY,
490 ecore_x_e_illume_softkey_geometry_set(Ecore_X_Window win,
496 unsigned int geom[4];
498 LOGFN(__FILE__, __LINE__, __FUNCTION__);
503 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY,
508 ecore_x_e_illume_softkey_geometry_get(Ecore_X_Window win,
515 unsigned int geom[4];
517 LOGFN(__FILE__, __LINE__, __FUNCTION__);
519 ecore_x_window_prop_card32_get(win,
520 ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY,
541 ecore_x_e_illume_keyboard_geometry_set(Ecore_X_Window win,
547 unsigned int geom[4];
549 LOGFN(__FILE__, __LINE__, __FUNCTION__);
554 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY,
559 ecore_x_e_illume_keyboard_geometry_get(Ecore_X_Window win,
566 unsigned int geom[4];
568 LOGFN(__FILE__, __LINE__, __FUNCTION__);
570 ecore_x_window_prop_card32_get(win,
571 ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY,
592 _ecore_x_e_quickpanel_atom_get(Ecore_X_Illume_Quickpanel_State state)
596 case ECORE_X_ILLUME_QUICKPANEL_STATE_ON:
597 return ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON;
599 case ECORE_X_ILLUME_QUICKPANEL_STATE_OFF:
600 return ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF;
608 static Ecore_X_Illume_Quickpanel_State
609 _ecore_x_e_quickpanel_state_get(Ecore_X_Atom atom)
611 if (atom == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON)
612 return ECORE_X_ILLUME_QUICKPANEL_STATE_ON;
614 if (atom == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF)
615 return ECORE_X_ILLUME_QUICKPANEL_STATE_OFF;
617 return ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN;
621 ecore_x_e_illume_quickpanel_set(Ecore_X_Window win,
622 unsigned int is_quickpanel)
624 LOGFN(__FILE__, __LINE__, __FUNCTION__);
625 ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL,
630 ecore_x_e_illume_quickpanel_get(Ecore_X_Window win)
632 unsigned int val = 0;
634 LOGFN(__FILE__, __LINE__, __FUNCTION__);
635 if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL,
639 return val ? EINA_TRUE : EINA_FALSE;
643 ecore_x_e_illume_quickpanel_state_set(Ecore_X_Window win,
644 Ecore_X_Illume_Quickpanel_State state)
646 Ecore_X_Atom atom = 0;
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,
654 EAPI Ecore_X_Illume_Quickpanel_State
655 ecore_x_e_illume_quickpanel_state_get(Ecore_X_Window win)
659 LOGFN(__FILE__, __LINE__, __FUNCTION__);
660 if (!ecore_x_window_prop_atom_get(win,
661 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE,
663 return ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN;
665 return _ecore_x_e_quickpanel_state_get(atom);
669 ecore_x_e_illume_quickpanel_state_send(Ecore_X_Window win,
670 Ecore_X_Illume_Quickpanel_State state)
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),
680 ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win)
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,
690 ecore_x_e_illume_quickpanel_priority_major_set(Ecore_X_Window win,
691 unsigned int priority)
693 LOGFN(__FILE__, __LINE__, __FUNCTION__);
694 ecore_x_window_prop_card32_set(win,
695 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR,
700 ecore_x_e_illume_quickpanel_priority_major_get(Ecore_X_Window win)
702 unsigned int val = 0;
704 LOGFN(__FILE__, __LINE__, __FUNCTION__);
705 if (!ecore_x_window_prop_card32_get(win,
706 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR,
714 ecore_x_e_illume_quickpanel_priority_minor_set(Ecore_X_Window win,
715 unsigned int priority)
717 LOGFN(__FILE__, __LINE__, __FUNCTION__);
718 ecore_x_window_prop_card32_set(win,
719 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR,
724 ecore_x_e_illume_quickpanel_priority_minor_get(Ecore_X_Window win)
726 unsigned int val = 0;
728 LOGFN(__FILE__, __LINE__, __FUNCTION__);
729 if (!ecore_x_window_prop_card32_get(win,
730 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR,
738 ecore_x_e_illume_quickpanel_zone_set(Ecore_X_Window win,
741 LOGFN(__FILE__, __LINE__, __FUNCTION__);
742 ecore_x_window_prop_card32_set(win,
743 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE,
748 ecore_x_e_illume_quickpanel_zone_get(Ecore_X_Window win)
750 unsigned int val = 0;
752 LOGFN(__FILE__, __LINE__, __FUNCTION__);
753 if (!ecore_x_window_prop_card32_get(win,
754 ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE,
762 ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win)
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,
772 _ecore_x_e_clipboard_atom_get(Ecore_X_Illume_Clipboard_State state)
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;
786 static Ecore_X_Illume_Clipboard_State
787 _ecore_x_e_clipboard_state_get(Ecore_X_Atom atom)
789 if (atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON)
790 return ECORE_X_ILLUME_CLIPBOARD_STATE_ON;
792 if (atom == ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF)
793 return ECORE_X_ILLUME_CLIPBOARD_STATE_OFF;
795 return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN;
799 ecore_x_e_illume_clipboard_state_set(Ecore_X_Window win,
800 Ecore_X_Illume_Clipboard_State state)
802 Ecore_X_Atom atom = 0;
804 LOGFN(__FILE__, __LINE__, __FUNCTION__);
805 atom = _ecore_x_e_clipboard_atom_get(state);
807 ecore_x_window_prop_atom_set(win,
808 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE,
812 EAPI Ecore_X_Illume_Clipboard_State
813 ecore_x_e_illume_clipboard_state_get(Ecore_X_Window win)
815 Ecore_X_Atom atom = 0;
817 LOGFN(__FILE__, __LINE__, __FUNCTION__);
819 if (!ecore_x_window_prop_atom_get(win,
820 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE,
822 return ECORE_X_ILLUME_CLIPBOARD_STATE_UNKNOWN;
823 return _ecore_x_e_clipboard_state_get(atom);
827 ecore_x_e_illume_clipboard_geometry_set(Ecore_X_Window win,
828 int x, int y, int w, int h)
830 unsigned int geom[4];
832 LOGFN(__FILE__, __LINE__, __FUNCTION__);
837 ecore_x_window_prop_card32_set(win,
838 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY,
843 ecore_x_e_illume_clipboard_geometry_get(Ecore_X_Window win,
844 int *x, int *y, int *w, int *h)
847 unsigned int geom[4];
849 LOGFN(__FILE__, __LINE__, __FUNCTION__);
851 ecore_x_window_prop_card32_get(win,
852 ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY,
854 if (ret != 4) return EINA_FALSE;
864 /* for sliding window */
866 ecore_x_e_illume_sliding_win_state_set(Ecore_X_Window win,
867 unsigned int is_visible)
869 LOGFN(__FILE__, __LINE__, __FUNCTION__);
870 ecore_x_window_prop_card32_set(win,
871 ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE,
873 } /* ecore_x_e_illume_sliding_win_state_set */
876 ecore_x_e_illume_sliding_win_state_get(Ecore_X_Window win)
878 unsigned int is_visible = 0;
880 LOGFN(__FILE__, __LINE__, __FUNCTION__);
881 if (!ecore_x_window_prop_card32_get(win,
882 ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE,
890 ecore_x_e_illume_sliding_win_geometry_set(Ecore_X_Window win,
896 unsigned int geom[4];
898 LOGFN(__FILE__, __LINE__, __FUNCTION__);
903 ecore_x_window_prop_card32_set(win,
904 ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY,
906 } /* ecore_x_e_illume_sliding_win_geometry_set */
909 ecore_x_e_illume_sliding_win_geometry_get(Ecore_X_Window win,
916 unsigned int geom[4];
918 LOGFN(__FILE__, __LINE__, __FUNCTION__);
920 ecore_x_window_prop_card32_get(win,
921 ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY,
939 }/* ecore_x_e_illume_sliding_win_geometry_get */
942 ecore_x_e_comp_sync_counter_set(Ecore_X_Window win,
943 Ecore_X_Sync_Counter counter)
945 LOGFN(__FILE__, __LINE__, __FUNCTION__);
947 ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER,
948 ECORE_X_ATOM_CARDINAL, &counter, 1);
950 ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER);
953 EAPI Ecore_X_Sync_Counter
954 ecore_x_e_comp_sync_counter_get(Ecore_X_Window win)
957 Ecore_X_Sync_Counter counter = 0;
959 LOGFN(__FILE__, __LINE__, __FUNCTION__);
961 ecore_x_window_prop_xid_get(win,
962 ECORE_X_ATOM_E_COMP_SYNC_COUNTER,
963 ECORE_X_ATOM_CARDINAL,
972 ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root,
977 LOGFN(__FILE__, __LINE__, __FUNCTION__);
979 root = DefaultRootWindow(_ecore_x_disp);
981 xev.xclient.type = ClientMessage;
982 xev.xclient.display = _ecore_x_disp;
983 xev.xclient.window = win;
984 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE;
985 xev.xclient.format = 32;
986 xev.xclient.data.l[0] = win;
987 xev.xclient.data.l[1] = 0; // version
988 xev.xclient.data.l[2] = 0; // later
989 xev.xclient.data.l[3] = 0; // later
990 xev.xclient.data.l[4] = 0; // later
992 XSendEvent(_ecore_x_disp, root, False,
993 SubstructureRedirectMask | SubstructureNotifyMask,
998 ecore_x_e_comp_sync_draw_size_done_send(Ecore_X_Window root,
1005 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1007 root = DefaultRootWindow(_ecore_x_disp);
1009 xev.xclient.type = ClientMessage;
1010 xev.xclient.display = _ecore_x_disp;
1011 xev.xclient.window = win;
1012 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE;
1013 xev.xclient.format = 32;
1014 xev.xclient.data.l[0] = win;
1015 xev.xclient.data.l[1] = 1; // version
1016 xev.xclient.data.l[2] = w; // win width at draw time
1017 xev.xclient.data.l[3] = h; // win height at draw time
1018 xev.xclient.data.l[4] = 0; // later
1020 XSendEvent(_ecore_x_disp, root, False,
1021 SubstructureRedirectMask | SubstructureNotifyMask,
1026 ecore_x_e_window_profile_list_set(Ecore_X_Window win,
1027 const char **profiles,
1028 unsigned int num_profiles)
1030 Ecore_X_Atom *atoms;
1032 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1037 ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_PROFILE_LIST);
1040 atoms = alloca(num_profiles * sizeof(Ecore_X_Atom));
1041 ecore_x_atoms_get(profiles, num_profiles, atoms);
1042 ecore_x_window_prop_property_set(win,
1043 ECORE_X_ATOM_E_PROFILE_LIST,
1044 XA_ATOM, 32, (void *)atoms,
1050 ecore_x_e_window_profile_list_get(Ecore_X_Window win,
1051 const char ***profiles,
1054 unsigned char *data;
1055 Ecore_X_Atom *atoms;
1067 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1068 if (!ecore_x_window_prop_property_get(win,
1069 ECORE_X_ATOM_E_PROFILE_LIST,
1070 XA_ATOM, 32, &data, &num))
1078 (*profiles) = calloc(num, sizeof(char *));
1090 atoms = (Ecore_X_Atom *)data;
1091 for (i = 0; i < num; i++)
1092 (*profiles)[i] = ecore_x_atom_name_get(atoms[i]);
1102 ecore_x_e_window_profile_set(Ecore_X_Window win,
1103 const char *profile)
1107 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1112 ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_PROFILE);
1115 atom = ecore_x_atom_get(profile);
1116 ecore_x_window_prop_property_set(win, ECORE_X_ATOM_E_PROFILE,
1117 XA_ATOM, 32, (void *)&atom, 1);
1122 ecore_x_e_window_profile_get(Ecore_X_Window win)
1124 Ecore_X_Atom *atom = NULL;
1125 unsigned char *data;
1126 char *profile = NULL;
1129 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1130 if (!ecore_x_window_prop_property_get(win, ECORE_X_ATOM_E_PROFILE,
1131 XA_ATOM, 32, &data, &num))
1135 atom = (Ecore_X_Atom *)data;
1138 profile = ecore_x_atom_name_get(atom[0]);
1144 ecore_x_e_comp_sync_supported_set(Ecore_X_Window root,
1150 root = DefaultRootWindow(_ecore_x_disp);
1152 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1155 win = ecore_x_window_new(root, 1, 2, 3, 4);
1156 ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
1157 ECORE_X_ATOM_WINDOW, &win, 1);
1158 ecore_x_window_prop_xid_set(root, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
1159 ECORE_X_ATOM_WINDOW, &win, 1);
1166 ecore_x_window_prop_xid_get(root,
1167 ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
1168 ECORE_X_ATOM_WINDOW,
1170 if ((ret == 1) && (win))
1172 ecore_x_window_prop_property_del(
1174 ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED);
1175 ecore_x_window_free(win);
1181 ecore_x_e_comp_sync_supported_get(Ecore_X_Window root)
1183 Ecore_X_Window win, win2;
1186 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1188 root = DefaultRootWindow(_ecore_x_disp);
1191 ecore_x_window_prop_xid_get(root,
1192 ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
1193 ECORE_X_ATOM_WINDOW,
1195 if ((ret == 1) && (win))
1198 ecore_x_window_prop_xid_get(win,
1199 ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED,
1200 ECORE_X_ATOM_WINDOW,
1202 if ((ret == 1) && (win2 == win))
1210 ecore_x_e_comp_sync_begin_send(Ecore_X_Window win)
1214 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1215 xev.xclient.type = ClientMessage;
1216 xev.xclient.display = _ecore_x_disp;
1217 xev.xclient.window = win;
1218 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_BEGIN;
1219 xev.xclient.format = 32;
1220 xev.xclient.data.l[0] = win;
1221 xev.xclient.data.l[1] = 0; // later
1222 xev.xclient.data.l[2] = 0; // later
1223 xev.xclient.data.l[3] = 0; // later
1224 xev.xclient.data.l[4] = 0; // later
1226 XSendEvent(_ecore_x_disp, win, False,
1227 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
1232 ecore_x_e_comp_sync_end_send(Ecore_X_Window win)
1236 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1237 xev.xclient.type = ClientMessage;
1238 xev.xclient.display = _ecore_x_disp;
1239 xev.xclient.window = win;
1240 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_END;
1241 xev.xclient.format = 32;
1242 xev.xclient.data.l[0] = win;
1243 xev.xclient.data.l[1] = 0; // later
1244 xev.xclient.data.l[2] = 0; // later
1245 xev.xclient.data.l[3] = 0; // later
1246 xev.xclient.data.l[4] = 0; // later
1248 XSendEvent(_ecore_x_disp, win, False,
1249 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
1254 ecore_x_e_comp_sync_cancel_send(Ecore_X_Window win)
1258 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1259 xev.xclient.type = ClientMessage;
1260 xev.xclient.display = _ecore_x_disp;
1261 xev.xclient.window = win;
1262 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_CANCEL;
1263 xev.xclient.format = 32;
1264 xev.xclient.data.l[0] = win;
1265 xev.xclient.data.l[1] = 0; // later
1266 xev.xclient.data.l[2] = 0; // later
1267 xev.xclient.data.l[3] = 0; // later
1268 xev.xclient.data.l[4] = 0; // later
1270 XSendEvent(_ecore_x_disp, win, False,
1271 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
1276 ecore_x_e_comp_flush_send(Ecore_X_Window win)
1280 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1281 xev.xclient.type = ClientMessage;
1282 xev.xclient.display = _ecore_x_disp;
1283 xev.xclient.window = win;
1284 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_FLUSH;
1285 xev.xclient.format = 32;
1286 xev.xclient.data.l[0] = win;
1287 xev.xclient.data.l[1] = 0; // later
1288 xev.xclient.data.l[2] = 0; // later
1289 xev.xclient.data.l[3] = 0; // later
1290 xev.xclient.data.l[4] = 0; // later
1292 XSendEvent(_ecore_x_disp, win, False,
1293 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
1298 ecore_x_e_comp_dump_send(Ecore_X_Window win)
1302 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1303 xev.xclient.type = ClientMessage;
1304 xev.xclient.display = _ecore_x_disp;
1305 xev.xclient.window = win;
1306 xev.xclient.message_type = ECORE_X_ATOM_E_COMP_DUMP;
1307 xev.xclient.format = 32;
1308 xev.xclient.data.l[0] = win;
1309 xev.xclient.data.l[1] = 0; // later
1310 xev.xclient.data.l[2] = 0; // later
1311 xev.xclient.data.l[3] = 0; // later
1312 xev.xclient.data.l[4] = 0; // later
1314 XSendEvent(_ecore_x_disp, win, False,
1315 NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask,
1320 ecore_x_e_comp_pixmap_set(Ecore_X_Window win,
1321 Ecore_X_Pixmap pixmap)
1323 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1325 ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_PIXMAP,
1326 ECORE_X_ATOM_PIXMAP, &pixmap, 1);
1328 ecore_x_window_prop_property_del(win, pixmap);
1332 ecore_x_e_comp_pixmap_get(Ecore_X_Window win)
1335 Ecore_X_Pixmap pixmap = 0;
1337 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1339 ecore_x_window_prop_xid_get(win,
1340 ECORE_X_ATOM_E_COMP_PIXMAP,
1341 ECORE_X_ATOM_PIXMAP,
1350 _ecore_x_e_indicator_atom_get(Ecore_X_Illume_Indicator_State state)
1354 case ECORE_X_ILLUME_INDICATOR_STATE_ON:
1355 return ECORE_X_ATOM_E_ILLUME_INDICATOR_ON;
1357 case ECORE_X_ILLUME_INDICATOR_STATE_OFF:
1358 return ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF;
1366 static Ecore_X_Illume_Indicator_State
1367 _ecore_x_e_indicator_state_get(Ecore_X_Atom atom)
1369 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_ON)
1370 return ECORE_X_ILLUME_INDICATOR_STATE_ON;
1372 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF)
1373 return ECORE_X_ILLUME_INDICATOR_STATE_OFF;
1375 return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN;
1379 ecore_x_e_illume_indicator_state_set(Ecore_X_Window win,
1380 Ecore_X_Illume_Indicator_State state)
1382 Ecore_X_Atom atom = 0;
1384 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1385 atom = _ecore_x_e_indicator_atom_get(state);
1386 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE,
1390 EAPI Ecore_X_Illume_Indicator_State
1391 ecore_x_e_illume_indicator_state_get(Ecore_X_Window win)
1395 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1396 if (!ecore_x_window_prop_atom_get(win,
1397 ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE,
1399 return ECORE_X_ILLUME_INDICATOR_STATE_UNKNOWN;
1401 return _ecore_x_e_indicator_state_get(atom);
1405 ecore_x_e_illume_indicator_state_send(Ecore_X_Window win,
1406 Ecore_X_Illume_Indicator_State state)
1408 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1409 ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE,
1410 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
1411 _ecore_x_e_indicator_atom_get(state),
1416 _ecore_x_e_indicator_opacity_atom_get(Ecore_X_Illume_Indicator_Opacity_Mode mode)
1420 case ECORE_X_ILLUME_INDICATOR_OPAQUE:
1421 return ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE;
1423 case ECORE_X_ILLUME_INDICATOR_TRANSLUCENT:
1424 return ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT;
1426 case ECORE_X_ILLUME_INDICATOR_TRANSPARENT:
1427 return ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT;
1435 static Ecore_X_Illume_Indicator_Opacity_Mode
1436 _ecore_x_e_indicator_opacity_get(Ecore_X_Atom atom)
1438 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE)
1439 return ECORE_X_ILLUME_INDICATOR_OPAQUE;
1441 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT)
1442 return ECORE_X_ILLUME_INDICATOR_TRANSLUCENT;
1444 if (atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT)
1445 return ECORE_X_ILLUME_INDICATOR_TRANSPARENT;
1447 return ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN;
1451 ecore_x_e_illume_indicator_opacity_set(Ecore_X_Window win,
1452 Ecore_X_Illume_Indicator_Opacity_Mode mode)
1454 Ecore_X_Atom atom = 0;
1456 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1457 atom = _ecore_x_e_indicator_opacity_atom_get(mode);
1458 ecore_x_window_prop_atom_set(win,
1459 ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE,
1463 EAPI Ecore_X_Illume_Indicator_Opacity_Mode
1464 ecore_x_e_illume_indicator_opacity_get(Ecore_X_Window win)
1468 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1469 if (!ecore_x_window_prop_atom_get(win,
1470 ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE,
1472 return ECORE_X_ILLUME_INDICATOR_OPACITY_UNKNOWN;
1474 return _ecore_x_e_indicator_opacity_get(atom);
1478 ecore_x_e_illume_indicator_opacity_send(Ecore_X_Window win,
1479 Ecore_X_Illume_Indicator_Opacity_Mode mode)
1481 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1482 ecore_x_client_message32_send(win,
1483 ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE,
1484 ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
1485 _ecore_x_e_indicator_opacity_atom_get(mode),
1490 _ecore_x_e_illume_window_state_atom_get(Ecore_X_Illume_Window_State state)
1494 case ECORE_X_ILLUME_WINDOW_STATE_NORMAL:
1495 return ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_NORMAL;
1497 case ECORE_X_ILLUME_WINDOW_STATE_FLOATING:
1498 return ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_FLOATING;
1506 static Ecore_X_Illume_Window_State
1507 _ecore_x_e_illume_window_state_get(Ecore_X_Atom atom)
1509 if (atom == ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_NORMAL)
1510 return ECORE_X_ILLUME_WINDOW_STATE_NORMAL;
1512 if (atom == ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_FLOATING)
1513 return ECORE_X_ILLUME_WINDOW_STATE_FLOATING;
1515 return ECORE_X_ILLUME_WINDOW_STATE_NORMAL;
1519 ecore_x_e_illume_window_state_set(Ecore_X_Window win,
1520 Ecore_X_Illume_Window_State state)
1522 Ecore_X_Atom atom = 0;
1524 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1525 atom = _ecore_x_e_illume_window_state_atom_get(state);
1526 ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_WINDOW_STATE,
1530 EAPI Ecore_X_Illume_Window_State
1531 ecore_x_e_illume_window_state_get(Ecore_X_Window win)
1535 LOGFN(__FILE__, __LINE__, __FUNCTION__);
1536 if (!ecore_x_window_prop_atom_get(win,
1537 ECORE_X_ATOM_E_ILLUME_WINDOW_STATE,
1539 return ECORE_X_ILLUME_WINDOW_STATE_NORMAL;
1541 return _ecore_x_e_illume_window_state_get(atom);