e36d04a7af77a0863813a6cc2289d4d4f220e6c2
[framework/uifw/ecore.git] / src / lib / ecore_x / xlib / ecore_x_e.c
1 /*
2  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
3  */
4 /*
5  * OLD E hints
6  */
7 #include "config.h"
8 #include "Ecore.h"
9 #include "ecore_x_private.h"
10 #include "Ecore_X.h"
11 #include "Ecore_X_Atoms.h"
12
13 EAPI void
14 ecore_x_e_init(void)
15 {
16 }
17
18 EAPI void
19 ecore_x_e_frame_size_set(Ecore_X_Window win, int fl, int fr, int ft, int fb)
20 {
21    unsigned int frames[4];
22
23    frames[0] = fl;
24    frames[1] = fr;
25    frames[2] = ft;
26    frames[3] = fb;
27    ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_FRAME_SIZE, frames, 4);
28 }
29
30 EAPI void
31 ecore_x_e_virtual_keyboard_set(Ecore_X_Window win, int is_keyboard)
32 {
33    ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD,
34                                   &is_keyboard, 1);
35 }
36
37 EAPI int
38 ecore_x_e_virtual_keyboard_get(Ecore_X_Window win)
39 {
40    unsigned int val;
41    
42    if (!ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD, &val, 1))
43      return 0;
44    return val;
45 }
46
47 static Ecore_X_Virtual_Keyboard_State
48 _ecore_x_e_vkbd_state_get(Ecore_X_Atom atom)
49 {
50    if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON) return ECORE_X_VIRTUAL_KEYBOARD_STATE_ON;
51    if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF) return ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF;
52    if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA) return ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA;
53    if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC) return ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC;
54    if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN) return ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN;
55    if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER) return ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER;
56    if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX) return ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX;
57    if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL) return ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL;
58    if (atom == ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD) return ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD;
59    return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN;
60 }
61
62 static Ecore_X_Atom
63 _ecore_x_e_vkbd_atom_get(Ecore_X_Virtual_Keyboard_State state)
64 {
65    switch (state)
66      {
67       case ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF;
68       case ECORE_X_VIRTUAL_KEYBOARD_STATE_ON: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON;
69       case ECORE_X_VIRTUAL_KEYBOARD_STATE_ALPHA: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA;
70       case ECORE_X_VIRTUAL_KEYBOARD_STATE_NUMERIC: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC;
71       case ECORE_X_VIRTUAL_KEYBOARD_STATE_PIN: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN;
72       case ECORE_X_VIRTUAL_KEYBOARD_STATE_PHONE_NUMBER: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER;
73       case ECORE_X_VIRTUAL_KEYBOARD_STATE_HEX: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX;
74       case ECORE_X_VIRTUAL_KEYBOARD_STATE_TERMINAL: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL;
75       case ECORE_X_VIRTUAL_KEYBOARD_STATE_PASSWORD: return ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD;
76       default: return 0;
77      }
78    return 0;
79 }
80
81 EAPI void
82 ecore_x_e_virtual_keyboard_state_set(Ecore_X_Window win, Ecore_X_Virtual_Keyboard_State state)
83 {
84    Ecore_X_Atom atom = 0;
85
86    atom = _ecore_x_e_vkbd_atom_get(state);
87    ecore_x_window_prop_atom_set(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
88                                 &atom, 1);
89 }
90
91 EAPI Ecore_X_Virtual_Keyboard_State
92 ecore_x_e_virtual_keyboard_state_get(Ecore_X_Window win)
93 {
94    Ecore_X_Atom atom;
95    int num;
96    
97    if (!ecore_x_window_prop_atom_get(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
98                                      &atom, 1))
99      return ECORE_X_VIRTUAL_KEYBOARD_STATE_UNKNOWN;
100    return _ecore_x_e_vkbd_state_get(atom);
101 }
102
103 EAPI void
104 ecore_x_e_virtual_keyboard_state_send(Ecore_X_Window win, Ecore_X_Virtual_Keyboard_State state)
105 {
106    ecore_x_client_message32_send(win, ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE,
107                                  ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
108                                  _ecore_x_e_vkbd_atom_get(state),
109                                  0, 0, 0, 0);
110 }