/* * OLD E hints */ #ifdef HAVE_CONFIG_H # include #endif /* ifdef HAVE_CONFIG_H */ #include "Ecore.h" #include "ecore_x_private.h" #include "Ecore_X.h" #include "Ecore_X_Atoms.h" EAPI void ecore_x_e_init(void) { } /* ecore_x_e_init */ EAPI void ecore_x_e_frame_size_set(Ecore_X_Window win, int fl, int fr, int ft, int fb) { unsigned int frames[4]; LOGFN(__FILE__, __LINE__, __FUNCTION__); frames[0] = fl; frames[1] = fr; frames[2] = ft; frames[3] = fb; ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_FRAME_SIZE, frames, 4); } /* ecore_x_e_frame_size_set */ EAPI void ecore_x_e_virtual_keyboard_set(Ecore_X_Window win, unsigned int is_keyboard) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD, &is_keyboard, 1); } /* ecore_x_e_virtual_keyboard_set */ EAPI Eina_Bool ecore_x_e_virtual_keyboard_get(Ecore_X_Window win) { unsigned int val; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD, &val, 1)) return EINA_FALSE; return val ? EINA_TRUE : EINA_FALSE; } /* ecore_x_e_virtual_keyboard_get */ static Ecore_X_Virtual_Keyboard_State _ecore_x_e_vkbd_state_get(Ecore_X_Atom atom) { if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON) return ECORE_X_VIRTUAL_KEYBOARD_STATE_ON; if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF) return ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF; if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA) return ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA; if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC) return ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC; if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN) return ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN; if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER) return ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER; if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX) return ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX; if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL) return ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL; if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD) return ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD; if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP) return ECORE_X_VIRTUAL_KEYBOARD_STATE_IP; if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST) return ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST; if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE) return ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE; if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL) return ECORE_X_VIRTUAL_KEYBOARD_STATE_URL; if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD) return ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD; if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME) return ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME; return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN; } /* _ecore_x_e_vkbd_state_get */ static Ecore_X_Atom _ecore_x_e_vkbd_atom_get(Ecore_X_Virtual_Keyboard_State state) { switch (state) { case ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF; case ECORE_X_VIRTUAL_KEYBOARD_STATE_ON: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON; case ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA; case ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC; case ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN; case ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER; case ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX; case ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL; case ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD; case ECORE_X_VIRTUAL_KEYBOARD_STATE_IP: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP; case ECORE_X_VIRTUAL_KEYBOARD_STATE_HOST: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST; case ECORE_X_VIRTUAL_KEYBOARD_STATE_FILE: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE; case ECORE_X_VIRTUAL_KEYBOARD_STATE_URL: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL; case ECORE_X_VIRTUAL_KEYBOARD_STATE_KEYPAD: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD; case ECORE_X_VIRTUAL_KEYBOARD_STATE_J2ME: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME; default: break; } /* switch */ return 0; } /* _ecore_x_e_vkbd_atom_get */ EAPI void ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window win, Ecore_X_Virtual_Keyboard_State state) { Ecore_X_Atom atom = 0; LOGFN(__FILE__, __LINE__, __FUNCTION__); atom = _ecore_x_e_vkbd_atom_get(state); ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE, &atom, 1); } /* ecore_x_e_virtual_keyboard_state_set */ EAPI Ecore_X_Virtual_Keyboard_State ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win) { Ecore_X_Atom atom; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!ecore_x_window_prop_atom_get(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE, &atom, 1)) return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN; return _ecore_x_e_vkbd_state_get(atom); } /* ecore_x_e_virtual_keyboard_state_get */ EAPI void ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window win, Ecore_X_Virtual_Keyboard_State state) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_client_message32_send(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE, ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, _ecore_x_e_vkbd_atom_get(state), 0, 0, 0, 0); } /* ecore_x_e_virtual_keyboard_state_send */ static Ecore_X_Atom _ecore_x_e_illume_atom_get(Ecore_X_Illume_Mode mode) { switch (mode) { case ECORE_X_ILLUME_MODE_SINGLE: return ECORE_X_ATOM_E_ILLUME_MODE_SINGLE; case ECORE_X_ILLUME_MODE_DUAL_TOP: return ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP; case ECORE_X_ILLUME_MODE_DUAL_LEFT: return ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT; default: break; } /* switch */ return ECORE_X_ILLUME_MODE_UNKNOWN; } /* _ecore_x_e_illume_atom_get */ static Ecore_X_Illume_Mode _ecore_x_e_illume_mode_get(Ecore_X_Atom atom) { if (atom == ECORE_X_ATOM_E_ILLUME_MODE_SINGLE) return ECORE_X_ILLUME_MODE_SINGLE; if (atom == ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP) return ECORE_X_ILLUME_MODE_DUAL_TOP; if (atom == ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT) return ECORE_X_ILLUME_MODE_DUAL_LEFT; return ECORE_X_ILLUME_MODE_UNKNOWN; } /* _ecore_x_e_illume_mode_get */ EAPI void ecore_x_e_illume_zone_set(Ecore_X_Window win, Ecore_X_Window zone) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_window_prop_window_set(win, ECORE_X_ATOM_E_ILLUME_ZONE, &zone, 1); } /* ecore_x_e_illume_zone_set */ EAPI Ecore_X_Window ecore_x_e_illume_zone_get(Ecore_X_Window win) { Ecore_X_Window zone; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!ecore_x_window_prop_window_get(win, ECORE_X_ATOM_E_ILLUME_ZONE, &zone, 1)) return 0; return zone; } /* ecore_x_e_illume_zone_get */ EAPI void ecore_x_e_illume_zone_list_set(Ecore_X_Window win, Ecore_X_Window *zones, unsigned int n_zones) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_window_prop_window_set(win, ECORE_X_ATOM_E_ILLUME_ZONE_LIST, zones, n_zones); } /* ecore_x_e_illume_zone_list_set */ EAPI void ecore_x_e_illume_conformant_set(Ecore_X_Window win, unsigned int is_conformant) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_CONFORMANT, &is_conformant, 1); } /* ecore_x_e_illume_conformant_set */ EAPI Eina_Bool ecore_x_e_illume_conformant_get(Ecore_X_Window win) { unsigned int val = 0; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_CONFORMANT, &val, 1)) return EINA_FALSE; return val ? EINA_TRUE : EINA_FALSE; } /* ecore_x_e_illume_conformant_get */ EAPI void ecore_x_e_illume_mode_set(Ecore_X_Window win, Ecore_X_Illume_Mode mode) { Ecore_X_Atom atom = 0; LOGFN(__FILE__, __LINE__, __FUNCTION__); atom = _ecore_x_e_illume_atom_get(mode); ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_MODE, &atom, 1); } /* ecore_x_e_illume_mode_set */ EAPI Ecore_X_Illume_Mode ecore_x_e_illume_mode_get(Ecore_X_Window win) { Ecore_X_Atom atom = 0; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!ecore_x_window_prop_atom_get(win, ECORE_X_ATOM_E_ILLUME_MODE, &atom, 1)) return ECORE_X_ILLUME_MODE_UNKNOWN; return _ecore_x_e_illume_mode_get(atom); } /* ecore_x_e_illume_mode_get */ EAPI void ecore_x_e_illume_mode_send(Ecore_X_Window win, Ecore_X_Illume_Mode mode) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_MODE, ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, _ecore_x_e_illume_atom_get(mode), 0, 0, 0, 0); } /* ecore_x_e_illume_mode_send */ EAPI void ecore_x_e_illume_focus_back_send(Ecore_X_Window win) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_BACK, ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 1, 0, 0, 0, 0); } /* ecore_x_e_illume_focus_back_send */ EAPI void ecore_x_e_illume_focus_forward_send(Ecore_X_Window win) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_FORWARD, ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 1, 0, 0, 0, 0); } /* ecore_x_e_illume_focus_forward_send */ EAPI void ecore_x_e_illume_focus_home_send(Ecore_X_Window win) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_FOCUS_HOME, ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 1, 0, 0, 0, 0); } /* ecore_x_e_illume_focus_home_send */ EAPI void ecore_x_e_illume_close_send(Ecore_X_Window win) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_CLOSE, ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 1, 0, 0, 0, 0); } /* ecore_x_e_illume_close_send */ EAPI void ecore_x_e_illume_home_new_send(Ecore_X_Window win) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_HOME_NEW, ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 1, 0, 0, 0, 0); } /* ecore_x_e_illume_home_new_send */ EAPI void ecore_x_e_illume_home_del_send(Ecore_X_Window win) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_HOME_DEL, ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 1, 0, 0, 0, 0); } /* ecore_x_e_illume_home_del_send */ EAPI void ecore_x_e_illume_drag_set(Ecore_X_Window win, unsigned int drag) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_DRAG, &drag, 1); } /* ecore_x_e_illume_drag_set */ EAPI Eina_Bool ecore_x_e_illume_drag_get(Ecore_X_Window win) { unsigned int val = 0; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_DRAG, &val, 1)) return EINA_FALSE; return val ? EINA_TRUE : EINA_FALSE; } /* ecore_x_e_illume_drag_get */ EAPI void ecore_x_e_illume_drag_locked_set(Ecore_X_Window win, unsigned int is_locked) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED, &is_locked, 1); } /* ecore_x_e_illume_drag_locked_set */ EAPI Eina_Bool ecore_x_e_illume_drag_locked_get(Ecore_X_Window win) { unsigned int val = 0; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED, &val, 1)) return EINA_FALSE; return val ? EINA_TRUE : EINA_FALSE; } /* ecore_x_e_illume_drag_locked_get */ EAPI void ecore_x_e_illume_drag_start_send(Ecore_X_Window win) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_DRAG_START, ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 1, 0, 0, 0, 0); } /* ecore_x_e_illume_drag_start_send */ EAPI void ecore_x_e_illume_drag_end_send(Ecore_X_Window win) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_DRAG_END, ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 1, 0, 0, 0, 0); } /* ecore_x_e_illume_drag_end_send */ EAPI void ecore_x_e_illume_indicator_geometry_set(Ecore_X_Window win, int x, int y, int w, int h) { unsigned int geom[4]; LOGFN(__FILE__, __LINE__, __FUNCTION__); geom[0] = x; geom[1] = y; geom[2] = w; geom[3] = h; ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY, geom, 4); } /* ecore_x_e_illume_indicator_geometry_set */ EAPI Eina_Bool ecore_x_e_illume_indicator_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h) { int ret = 0; unsigned int geom[4]; LOGFN(__FILE__, __LINE__, __FUNCTION__); ret = ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY, geom, 4); if (ret != 4) return EINA_FALSE; if (x) *x = geom[0]; if (y) *y = geom[1]; if (w) *w = geom[2]; if (h) *h = geom[3]; return EINA_TRUE; } /* ecore_x_e_illume_indicator_geometry_get */ EAPI void ecore_x_e_illume_softkey_geometry_set(Ecore_X_Window win, int x, int y, int w, int h) { unsigned int geom[4]; LOGFN(__FILE__, __LINE__, __FUNCTION__); geom[0] = x; geom[1] = y; geom[2] = w; geom[3] = h; ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY, geom, 4); } /* ecore_x_e_illume_softkey_geometry_set */ EAPI Eina_Bool ecore_x_e_illume_softkey_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h) { int ret = 0; unsigned int geom[4]; LOGFN(__FILE__, __LINE__, __FUNCTION__); ret = ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY, geom, 4); if (ret != 4) return EINA_FALSE; if (x) *x = geom[0]; if (y) *y = geom[1]; if (w) *w = geom[2]; if (h) *h = geom[3]; return EINA_TRUE; } /* ecore_x_e_illume_softkey_geometry_get */ EAPI void ecore_x_e_illume_keyboard_geometry_set(Ecore_X_Window win, int x, int y, int w, int h) { unsigned int geom[4]; LOGFN(__FILE__, __LINE__, __FUNCTION__); geom[0] = x; geom[1] = y; geom[2] = w; geom[3] = h; ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY, geom, 4); } /* ecore_x_e_illume_keyboard_geometry_set */ EAPI Eina_Bool ecore_x_e_illume_keyboard_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h) { int ret = 0; unsigned int geom[4]; LOGFN(__FILE__, __LINE__, __FUNCTION__); ret = ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY, geom, 4); if (ret != 4) return EINA_FALSE; if (x) *x = geom[0]; if (y) *y = geom[1]; if (w) *w = geom[2]; if (h) *h = geom[3]; return EINA_TRUE; } /* ecore_x_e_illume_keyboard_geometry_get */ static Ecore_X_Atom _ecore_x_e_quickpanel_atom_get(Ecore_X_Illume_Quickpanel_State state) { switch (state) { case ECORE_X_ILLUME_QUICKPANEL_STATE_ON: return ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON; case ECORE_X_ILLUME_QUICKPANEL_STATE_OFF: return ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF; default: break; } /* switch */ return 0; } /* _ecore_x_e_quickpanel_atom_get */ static Ecore_X_Illume_Quickpanel_State _ecore_x_e_quickpanel_state_get(Ecore_X_Atom atom) { if (atom == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON) return ECORE_X_ILLUME_QUICKPANEL_STATE_ON; if (atom == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF) return ECORE_X_ILLUME_QUICKPANEL_STATE_OFF; return ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN; } /* _ecore_x_e_quickpanel_state_get */ EAPI void ecore_x_e_illume_quickpanel_set(Ecore_X_Window win, unsigned int is_quickpanel) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL, &is_quickpanel, 1); } /* ecore_x_e_illume_quickpanel_set */ EAPI Eina_Bool ecore_x_e_illume_quickpanel_get(Ecore_X_Window win) { unsigned int val = 0; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL, &val, 1)) return EINA_FALSE; return val ? EINA_TRUE : EINA_FALSE; } /* ecore_x_e_illume_quickpanel_get */ EAPI void ecore_x_e_illume_quickpanel_state_set(Ecore_X_Window win, Ecore_X_Illume_Quickpanel_State state) { Ecore_X_Atom atom = 0; LOGFN(__FILE__, __LINE__, __FUNCTION__); atom = _ecore_x_e_quickpanel_atom_get(state); ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE, &atom, 1); } /* ecore_x_e_illume_quickpanel_state_set */ EAPI Ecore_X_Illume_Quickpanel_State ecore_x_e_illume_quickpanel_state_get(Ecore_X_Window win) { Ecore_X_Atom atom; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!ecore_x_window_prop_atom_get(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE, &atom, 1)) return ECORE_X_ILLUME_QUICKPANEL_STATE_UNKNOWN; return _ecore_x_e_quickpanel_state_get(atom); } /* ecore_x_e_illume_quickpanel_state_get */ EAPI void ecore_x_e_illume_quickpanel_state_send(Ecore_X_Window win, Ecore_X_Illume_Quickpanel_State state) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE, ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, _ecore_x_e_quickpanel_atom_get(state), 0, 0, 0, 0); } /* ecore_x_e_illume_quickpanel_state_send */ EAPI void ecore_x_e_illume_quickpanel_state_toggle(Ecore_X_Window win) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE_TOGGLE, ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 0, 0, 0, 0, 0); } /* ecore_x_e_illume_quickpanel_state_toggle */ EAPI void ecore_x_e_illume_quickpanel_priority_major_set(Ecore_X_Window win, unsigned int priority) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR, &priority, 1); } /* ecore_x_e_illume_quickpanel_priority_major_set */ EAPI int ecore_x_e_illume_quickpanel_priority_major_get(Ecore_X_Window win) { unsigned int val = 0; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR, &val, 1)) return 0; return val; } /* ecore_x_e_illume_quickpanel_priority_major_get */ EAPI void ecore_x_e_illume_quickpanel_priority_minor_set(Ecore_X_Window win, unsigned int priority) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR, &priority, 1); } /* ecore_x_e_illume_quickpanel_priority_minor_set */ EAPI int ecore_x_e_illume_quickpanel_priority_minor_get(Ecore_X_Window win) { unsigned int val = 0; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR, &val, 1)) return 0; return val; } /* ecore_x_e_illume_quickpanel_priority_minor_get */ EAPI void ecore_x_e_illume_quickpanel_zone_set(Ecore_X_Window win, unsigned int zone) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE, &zone, 1); } /* ecore_x_e_illume_quickpanel_zone_set */ EAPI int ecore_x_e_illume_quickpanel_zone_get(Ecore_X_Window win) { unsigned int val = 0; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE, &val, 1)) return 0; return val; } /* ecore_x_e_illume_quickpanel_zone_get */ EAPI void ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win) { LOGFN(__FILE__, __LINE__, __FUNCTION__); ecore_x_client_message32_send(win, ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE, ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 1, 0, 0, 0, 0); } /* ecore_x_e_illume_quickpanel_position_update_send */ EAPI void ecore_x_e_comp_sync_counter_set(Ecore_X_Window win, Ecore_X_Sync_Counter counter) { LOGFN(__FILE__, __LINE__, __FUNCTION__); if (counter) ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER, ECORE_X_ATOM_CARDINAL, &counter, 1); else ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER); } /* ecore_x_e_comp_sync_counter_set */ EAPI Ecore_X_Sync_Counter ecore_x_e_comp_sync_counter_get(Ecore_X_Window win) { int ret = 0; Ecore_X_Sync_Counter counter = 0; LOGFN(__FILE__, __LINE__, __FUNCTION__); ret = ecore_x_window_prop_xid_get(win, ECORE_X_ATOM_E_COMP_SYNC_COUNTER, ECORE_X_ATOM_CARDINAL, &counter, 1); if (ret != 1) return 0; return counter; } /* ecore_x_e_comp_sync_counter_get */ EAPI void ecore_x_e_comp_sync_draw_done_send(Ecore_X_Window root, Ecore_X_Window win) { XEvent xev; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!root) root = DefaultRootWindow(_ecore_x_disp); xev.xclient.type = ClientMessage; xev.xclient.display = _ecore_x_disp; xev.xclient.window = win; xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE; xev.xclient.format = 32; xev.xclient.data.l[0] = win; xev.xclient.data.l[1] = 0; // version xev.xclient.data.l[2] = 0; // later xev.xclient.data.l[3] = 0; // later xev.xclient.data.l[4] = 0; // later XSendEvent(_ecore_x_disp, root, False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); } /* ecore_x_e_comp_sync_draw_done_send */ EAPI void ecore_x_e_comp_sync_draw_size_done_send(Ecore_X_Window root, Ecore_X_Window win, int w, int h) { XEvent xev; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!root) root = DefaultRootWindow(_ecore_x_disp); xev.xclient.type = ClientMessage; xev.xclient.display = _ecore_x_disp; xev.xclient.window = win; xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE; xev.xclient.format = 32; xev.xclient.data.l[0] = win; xev.xclient.data.l[1] = 1; // version xev.xclient.data.l[2] = w; // win width at draw time xev.xclient.data.l[3] = h; // win height at draw time xev.xclient.data.l[4] = 0; // later XSendEvent(_ecore_x_disp, root, False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); } /* ecore_x_e_comp_sync_draw_done_send */ EAPI void ecore_x_e_comp_sync_supported_set(Ecore_X_Window root, Eina_Bool enabled) { Ecore_X_Window win; if (!root) root = DefaultRootWindow(_ecore_x_disp); LOGFN(__FILE__, __LINE__, __FUNCTION__); if (enabled) { win = ecore_x_window_new(root, 1, 2, 3, 4); ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED, ECORE_X_ATOM_WINDOW, &win, 1); ecore_x_window_prop_xid_set(root, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED, ECORE_X_ATOM_WINDOW, &win, 1); } else { int ret; ret = ecore_x_window_prop_xid_get(root, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED, ECORE_X_ATOM_WINDOW, &win, 1); if ((ret == 1) && (win)) { ecore_x_window_prop_property_del( root, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED); ecore_x_window_free(win); } } } /* ecore_x_e_comp_sync_supported_set */ EAPI Eina_Bool ecore_x_e_comp_sync_supported_get(Ecore_X_Window root) { Ecore_X_Window win, win2; int ret; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!root) root = DefaultRootWindow(_ecore_x_disp); ret = ecore_x_window_prop_xid_get(root, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED, ECORE_X_ATOM_WINDOW, &win, 1); if ((ret == 1) && (win)) { ret = ecore_x_window_prop_xid_get(win, ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED, ECORE_X_ATOM_WINDOW, &win2, 1); if ((ret == 1) && (win2 == win)) return 1; } return 0; } /* ecore_x_e_comp_sync_supported_get */ EAPI void ecore_x_e_comp_sync_begin_send(Ecore_X_Window win) { XEvent xev; LOGFN(__FILE__, __LINE__, __FUNCTION__); xev.xclient.type = ClientMessage; xev.xclient.display = _ecore_x_disp; xev.xclient.window = win; xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_BEGIN; xev.xclient.format = 32; xev.xclient.data.l[0] = win; xev.xclient.data.l[1] = 0; // later xev.xclient.data.l[2] = 0; // later xev.xclient.data.l[3] = 0; // later xev.xclient.data.l[4] = 0; // later XSendEvent(_ecore_x_disp, win, False, NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask, &xev); } /* ecore_x_e_comp_sync_begin_send */ EAPI void ecore_x_e_comp_sync_end_send(Ecore_X_Window win) { XEvent xev; LOGFN(__FILE__, __LINE__, __FUNCTION__); xev.xclient.type = ClientMessage; xev.xclient.display = _ecore_x_disp; xev.xclient.window = win; xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_END; xev.xclient.format = 32; xev.xclient.data.l[0] = win; xev.xclient.data.l[1] = 0; // later xev.xclient.data.l[2] = 0; // later xev.xclient.data.l[3] = 0; // later xev.xclient.data.l[4] = 0; // later XSendEvent(_ecore_x_disp, win, False, NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask, &xev); } /* ecore_x_e_comp_sync_end_send */ EAPI void ecore_x_e_comp_sync_cancel_send(Ecore_X_Window win) { XEvent xev; LOGFN(__FILE__, __LINE__, __FUNCTION__); xev.xclient.type = ClientMessage; xev.xclient.display = _ecore_x_disp; xev.xclient.window = win; xev.xclient.message_type = ECORE_X_ATOM_E_COMP_SYNC_CANCEL; xev.xclient.format = 32; xev.xclient.data.l[0] = win; xev.xclient.data.l[1] = 0; // later xev.xclient.data.l[2] = 0; // later xev.xclient.data.l[3] = 0; // later xev.xclient.data.l[4] = 0; // later XSendEvent(_ecore_x_disp, win, False, NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask, &xev); } /* ecore_x_e_comp_sync_cancel_send */ EAPI void ecore_x_e_comp_flush_send(Ecore_X_Window win) { XEvent xev; LOGFN(__FILE__, __LINE__, __FUNCTION__); xev.xclient.type = ClientMessage; xev.xclient.display = _ecore_x_disp; xev.xclient.window = win; xev.xclient.message_type = ECORE_X_ATOM_E_COMP_FLUSH; xev.xclient.format = 32; xev.xclient.data.l[0] = win; xev.xclient.data.l[1] = 0; // later xev.xclient.data.l[2] = 0; // later xev.xclient.data.l[3] = 0; // later xev.xclient.data.l[4] = 0; // later XSendEvent(_ecore_x_disp, win, False, NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask, &xev); } /* ecore_x_e_comp_flush_send */ EAPI void ecore_x_e_comp_dump_send(Ecore_X_Window win) { XEvent xev; LOGFN(__FILE__, __LINE__, __FUNCTION__); xev.xclient.type = ClientMessage; xev.xclient.display = _ecore_x_disp; xev.xclient.window = win; xev.xclient.message_type = ECORE_X_ATOM_E_COMP_DUMP; xev.xclient.format = 32; xev.xclient.data.l[0] = win; xev.xclient.data.l[1] = 0; // later xev.xclient.data.l[2] = 0; // later xev.xclient.data.l[3] = 0; // later xev.xclient.data.l[4] = 0; // later XSendEvent(_ecore_x_disp, win, False, NoEventMask, //SubstructureRedirectMask | SubstructureNotifyMask, &xev); } /* ecore_x_e_comp_dump_send */ EAPI void ecore_x_e_comp_pixmap_set(Ecore_X_Window win, Ecore_X_Pixmap pixmap) { LOGFN(__FILE__, __LINE__, __FUNCTION__); if (pixmap) ecore_x_window_prop_xid_set(win, ECORE_X_ATOM_E_COMP_PIXMAP, ECORE_X_ATOM_PIXMAP, &pixmap, 1); else ecore_x_window_prop_property_del(win, pixmap); } /* ecore_x_e_comp_pixmap_set */ EAPI Ecore_X_Pixmap ecore_x_e_comp_pixmap_get(Ecore_X_Window win) { int ret = 0; Ecore_X_Pixmap pixmap = 0; LOGFN(__FILE__, __LINE__, __FUNCTION__); ret = ecore_x_window_prop_xid_get(win, ECORE_X_ATOM_E_COMP_PIXMAP, ECORE_X_ATOM_PIXMAP, &pixmap, 1); if (ret != 1) return 0; return pixmap; } /* ecore_x_e_comp_pixmap_get */