From 53e5ffca5db93f2e31392fec1240cd4a6bc39354 Mon Sep 17 00:00:00 2001 From: devilhorns Date: Wed, 23 Dec 2009 01:48:25 +0000 Subject: [PATCH] Add missing vkbd atoms/states to functions where needed. Add atoms/states for illume winlist. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@44674 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/ecore_x/Ecore_X.h | 9 +++ src/lib/ecore_x/Ecore_X_Atoms.h | 4 ++ src/lib/ecore_x/ecore_x_atoms_decl.h | 8 ++- src/lib/ecore_x/xlib/ecore_x_atoms.c | 6 +- src/lib/ecore_x/xlib/ecore_x_e.c | 124 ++++++++++++++++++++++++++++++----- 5 files changed, 130 insertions(+), 21 deletions(-) diff --git a/src/lib/ecore_x/Ecore_X.h b/src/lib/ecore_x/Ecore_X.h index b534208..b7f9682 100644 --- a/src/lib/ecore_x/Ecore_X.h +++ b/src/lib/ecore_x/Ecore_X.h @@ -1018,6 +1018,13 @@ typedef enum _Ecore_X_Illume_Mode ECORE_X_ILLUME_MODE_DUAL } Ecore_X_Illume_Mode; +typedef enum _Ecore_X_Illume_Winlist_State +{ + ECORE_X_ILLUME_WINLIST_STATE_UNKNOWN = 0, + ECORE_X_ILLUME_WINLIST_STATE_ON, + ECORE_X_ILLUME_WINLIST_STATE_OFF +} Ecore_X_Illume_Winlist_State; + /* Window layer constants */ #define ECORE_X_WINDOW_LAYER_BELOW 2 #define ECORE_X_WINDOW_LAYER_NORMAL 4 @@ -1551,6 +1558,8 @@ EAPI void ecore_x_e_illume_drag_locked_set(Ecore_X_Window win, un EAPI int ecore_x_e_illume_drag_locked_get(Ecore_X_Window win); EAPI void ecore_x_e_illume_drag_start_send(Ecore_X_Window win); EAPI void ecore_x_e_illume_drag_end_send(Ecore_X_Window win); +EAPI void ecore_x_e_illume_winlist_state_set(Ecore_X_Window win, Ecore_X_Illume_Winlist_State state); +EAPI Ecore_X_Illume_Winlist_State ecore_x_e_illume_winlist_state_get(Ecore_X_Window win); EAPI void ecore_x_xinerama_query_screens_prefetch(void); diff --git a/src/lib/ecore_x/Ecore_X_Atoms.h b/src/lib/ecore_x/Ecore_X_Atoms.h index 408ef2b..32771b9 100644 --- a/src/lib/ecore_x/Ecore_X_Atoms.h +++ b/src/lib/ecore_x/Ecore_X_Atoms.h @@ -214,5 +214,9 @@ EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_DRAG; EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED; EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_DRAG_START; EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_DRAG_END; +EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_WINLIST; +EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_WINLIST_STATE; +EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_WINLIST_ON; +EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_WINLIST_OFF; #endif /* _ECORE_X_ATOMS_H */ diff --git a/src/lib/ecore_x/ecore_x_atoms_decl.h b/src/lib/ecore_x/ecore_x_atoms_decl.h index 8d9d846..0eba880 100644 --- a/src/lib/ecore_x/ecore_x_atoms_decl.h +++ b/src/lib/ecore_x/ecore_x_atoms_decl.h @@ -205,7 +205,7 @@ EAPI Ecore_X_Atom ECORE_X_ATOM_SELECTION_PROP_PRIMARY = 0; EAPI Ecore_X_Atom ECORE_X_ATOM_SELECTION_PROP_SECONDARY = 0; EAPI Ecore_X_Atom ECORE_X_ATOM_SELECTION_PROP_CLIPBOARD = 0; -/* currenly E specific virtual keyboard extension, aim to submit to netwm spec +/* currently E specific virtual keyboard extension, aim to submit to netwm spec * later */ EAPI Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD = 0; @@ -226,7 +226,7 @@ EAPI Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL = 0; EAPI Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD = 0; EAPI Ecore_X_Atom ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME = 0; -/* atom to determine if an app is illume compliant */ +/* currently E specific illume extension */ EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_CONFORMANT = 0; EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_MODE = 0; EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_MODE_SINGLE = 0; @@ -237,3 +237,7 @@ EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_DRAG = 0; EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED = 0; EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_DRAG_START = 0; EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_DRAG_END = 0; +EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_WINLIST = 0; +EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_WINLIST_STATE = 0; +EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_WINLIST_ON = 0; +EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_WINLIST_OFF = 0; diff --git a/src/lib/ecore_x/xlib/ecore_x_atoms.c b/src/lib/ecore_x/xlib/ecore_x_atoms.c index ae9cbb2..f9be3e6 100644 --- a/src/lib/ecore_x/xlib/ecore_x_atoms.c +++ b/src/lib/ecore_x/xlib/ecore_x_atoms.c @@ -226,7 +226,11 @@ _ecore_x_atoms_init(void) { "_E_ILLUME_DRAG", &ECORE_X_ATOM_E_ILLUME_DRAG }, { "_E_ILLUME_DRAG_LOCKED", &ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED }, { "_E_ILLUME_DRAG_START", &ECORE_X_ATOM_E_ILLUME_DRAG_START }, - { "_E_ILLUME_DRAG_END", &ECORE_X_ATOM_E_ILLUME_DRAG_END } + { "_E_ILLUME_DRAG_END", &ECORE_X_ATOM_E_ILLUME_DRAG_END }, + { "_E_ILLUME_WINLIST", &ECORE_X_ATOM_E_ILLUME_WINLIST }, + { "_E_ILLUME_WINLIST_STATE", &ECORE_X_ATOM_E_ILLUME_WINLIST_STATE }, + { "_E_ILLUME_WINLIST_ON", &ECORE_X_ATOM_E_ILLUME_WINLIST_ON }, + { "_E_ILLUME_WINLIST_OFF", &ECORE_X_ATOM_E_ILLUME_WINLIST_OFF } }; Atom *atoms; char **names; diff --git a/src/lib/ecore_x/xlib/ecore_x_e.c b/src/lib/ecore_x/xlib/ecore_x_e.c index e5bfb36..7700f12 100644 --- a/src/lib/ecore_x/xlib/ecore_x_e.c +++ b/src/lib/ecore_x/xlib/ecore_x_e.c @@ -52,15 +52,36 @@ ecore_x_e_virtual_keyboard_get(Ecore_X_Window win) 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_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; } @@ -69,15 +90,36 @@ _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_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: return 0; } return 0; @@ -249,3 +291,49 @@ ecore_x_e_illume_drag_end_send(Ecore_X_Window win) ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, 1, 0, 0, 0, 0); } + +static Ecore_X_Atom +_ecore_x_e_illume_winlist_atom_get(Ecore_X_Illume_Winlist_State state) +{ + switch (state) + { + case ECORE_X_ILLUME_WINLIST_STATE_ON: + return ECORE_X_ATOM_E_ILLUME_WINLIST_ON; + case ECORE_X_ILLUME_WINLIST_STATE_OFF: + return ECORE_X_ATOM_E_ILLUME_WINLIST_OFF; + default: + return 0; + } + return 0; +} + +static Ecore_X_Illume_Mode +_ecore_x_e_illume_winlist_state_get(Ecore_X_Atom atom) +{ + if (atom == ECORE_X_ATOM_E_ILLUME_WINLIST_ON) + return ECORE_X_ILLUME_WINLIST_STATE_ON; + if (atom == ECORE_X_ATOM_E_ILLUME_WINLIST_OFF) + return ECORE_X_ILLUME_WINLIST_STATE_OFF; + return ECORE_X_ILLUME_WINLIST_STATE_UNKNOWN; +} + +EAPI void +ecore_x_e_illume_winlist_state_set(Ecore_X_Window win, Ecore_X_Illume_Winlist_State state) +{ + Ecore_X_Atom atom = 0; + + atom = _ecore_x_e_illume_winlist_atom_get(state); + ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_ILLUME_WINLIST_STATE, + &atom, 1); +} + +EAPI Ecore_X_Illume_Winlist_State +ecore_x_e_illume_winlist_state_get(Ecore_X_Window win) +{ + Ecore_X_Atom atom; + + if (!ecore_x_window_prop_atom_get(win, ECORE_X_ATOM_E_ILLUME_WINLIST_STATE, + &atom, 1)) + return ECORE_X_ILLUME_WINLIST_STATE_UNKNOWN; + return _ecore_x_e_illume_winlist_state_get(atom); +} -- 2.7.4