Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/lib/ecore_x/xlib


Modified Files:
        ecore_x_atoms.c ecore_x_e.c 


Log Message:


e vkbd hint wrappers!

===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_x/xlib/ecore_x_atoms.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- ecore_x_atoms.c     23 Jul 2008 10:00:01 -0000      1.1
+++ ecore_x_atoms.c     25 Jul 2008 01:45:36 -0000      1.2
@@ -176,7 +176,19 @@
        { "SECONDARY", &ECORE_X_ATOM_SELECTION_CLIPBOARD },
        { "_ECORE_SELECTION_PRIMARY", &ECORE_X_ATOM_SELECTION_PROP_PRIMARY },
        { "_ECORE_SELECTION_SECONDARY", &ECORE_X_ATOM_SELECTION_PROP_SECONDARY 
},
-       { "_ECORE_SELECTION_CLIPBOARD", &ECORE_X_ATOM_SELECTION_PROP_CLIPBOARD }
+       { "_ECORE_SELECTION_CLIPBOARD", &ECORE_X_ATOM_SELECTION_PROP_CLIPBOARD 
},
+
+       { "_E_VIRTUAL_KEYBOARD", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD },
+       { "_E_VIRTUAL_KEYBOARD_STATE", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE },
+       { "_E_VIRTUAL_KEYBOARD_ON", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON },
+       { "_E_VIRTUAL_KEYBOARD_OFF", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF },
+       { "_E_VIRTUAL_KEYBOARD_ALPHA", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA },
+       { "_E_VIRTUAL_KEYBOARD_NUMERIC", 
&ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC },
+       { "_E_VIRTUAL_KEYBOARD_PIN", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN },
+       { "_E_VIRTUAL_KEYBOARD_PHONE_NUMBER", 
&ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER },
+       { "_E_VIRTUAL_KEYBOARD_HEX", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX },
+       { "_E_VIRTUAL_KEYBOARD_TERMINAL", 
&ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL },
+       { "_E_VIRTUAL_KEYBOARD_PASSWORD", 
&ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD }
      };
    Atom *atoms;
    char **names;
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_x/xlib/ecore_x_e.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- ecore_x_e.c 23 Jul 2008 10:00:01 -0000      1.1
+++ ecore_x_e.c 25 Jul 2008 01:45:36 -0000      1.2
@@ -26,3 +26,85 @@
    frames[3] = fb;
    ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_FRAME_SIZE, frames, 4);
 }
+
+EAPI void
+ecore_x_e_virtual_keyboard_set(Ecore_X_Window win, int is_keyboard)
+{
+   ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD,
+                                 &is_keyboard, 1);
+}
+
+EAPI int
+ecore_x_e_virtual_keyboard_get(Ecore_X_Window win)
+{
+   unsigned int val;
+   
+   if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD, 
&val, 1))
+     return 0;
+   return val;
+}
+
+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_KEYOBARD_STATE_ON;
+   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF) return 
ECORE_X_VIRTUAL_KEYOBARD_STATE_OFF;
+   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA) return 
ECORE_X_VIRTUAL_KEYOBARD_STATE_ALPHA;
+   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC) return 
ECORE_X_VIRTUAL_KEYOBARD_STATE_NUMERIC;
+   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN) return 
ECORE_X_VIRTUAL_KEYOBARD_STATE_PIN;
+   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER) return 
ECORE_X_VIRTUAL_KEYOBARD_STATE_PHONE_NUMBER;
+   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX) return 
ECORE_X_VIRTUAL_KEYOBARD_STATE_HEX;
+   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL) return 
ECORE_X_VIRTUAL_KEYOBARD_STATE_TERMINAL;
+   if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD) return 
ECORE_X_VIRTUAL_KEYOBARD_STATE_PASSWORD;
+   return ECORE_X_VIRTUAL_KEYOBARD_STATE_UNKNOWN;
+}
+
+static Ecore_X_Atom
+_ecore_x_e_vkbd_atom_get(Ecore_X_Virtual_Keyboard_State state)
+{
+   switch (state)
+     {
+      case ECORE_X_VIRTUAL_KEYOBARD_STATE_OFF: return 
ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF;
+      case ECORE_X_VIRTUAL_KEYOBARD_STATE_ON: return 
ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON;
+      case ECORE_X_VIRTUAL_KEYOBARD_STATE_ALPHA: return 
ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA;
+      case ECORE_X_VIRTUAL_KEYOBARD_STATE_NUMERIC: return 
ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC;
+      case ECORE_X_VIRTUAL_KEYOBARD_STATE_PIN: return 
ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN;
+      case ECORE_X_VIRTUAL_KEYOBARD_STATE_PHONE_NUMBER: return 
ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER;
+      case ECORE_X_VIRTUAL_KEYOBARD_STATE_HEX: return 
ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX;
+      case ECORE_X_VIRTUAL_KEYOBARD_STATE_TERMINAL: return 
ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL;
+      case ECORE_X_VIRTUAL_KEYOBARD_STATE_PASSWORD: return 
ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD;
+      default: return 0;
+     }
+   return 0;
+}
+
+EAPI void
+ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window win, 
Ecore_X_Virtual_Keyboard_State state)
+{
+   Ecore_X_Atom atom = 0;
+
+   atom = _ecore_x_e_vkbd_atom_get(state);
+   ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
+                               &atom, 1);
+}
+
+EAPI Ecore_X_Virtual_Keyboard_State
+ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win)
+{
+   Ecore_X_Atom atom;
+   int num;
+   
+   if (!ecore_x_window_prop_atom_get(win, 
ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
+                                    &atom, 1))
+     return ECORE_X_VIRTUAL_KEYOBARD_STATE_UNKNOWN;
+   return _ecore_x_e_vkbd_state_get(atom);
+}
+
+EAPI void
+ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window win, 
Ecore_X_Virtual_Keyboard_State state)
+{
+   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);
+}



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to