svn update: 48958 (latest:48959)
[framework/uifw/ecore.git] / src / lib / ecore_x / xlib / ecore_x_atoms.c
1 /*
2  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
3  */
4
5 #ifdef HAVE_CONFIG_H
6 # include <config.h>
7 #endif
8
9 #ifdef HAVE_ALLOCA_H
10 # include <alloca.h>
11 #elif defined __GNUC__
12 # define alloca __builtin_alloca
13 #elif defined _AIX
14 # define alloca __alloca
15 #elif defined _MSC_VER
16 # include <malloc.h>
17 # define alloca _alloca
18 #else
19 # include <stddef.h>
20 # ifdef  __cplusplus
21 extern "C"
22 # endif
23 void *alloca (size_t);
24 #endif
25
26 #include <string.h>
27
28 #include "Ecore.h"
29 #include "ecore_x_private.h"
30 #include "Ecore_X.h"
31 #include "Ecore_X_Atoms.h"
32
33 #include "ecore_x_atoms_decl.h"
34
35 typedef struct
36 {
37    const char   *name;
38    Ecore_X_Atom *atom;
39 } Atom_Item;
40
41 void
42 _ecore_x_atoms_init(void)
43 {
44    const Atom_Item items[] =
45      {
46         { "ATOM", &ECORE_X_ATOM_ATOM },
47         { "CARDINAL", &ECORE_X_ATOM_CARDINAL },
48         { "COMPOUND_TEXT", &ECORE_X_ATOM_COMPOUND_TEXT },
49         { "FILE_NAME", &ECORE_X_ATOM_FILE_NAME },
50         { "STRING", &ECORE_X_ATOM_STRING },
51         { "TEXT", &ECORE_X_ATOM_TEXT },
52         { "UTF8_STRING", &ECORE_X_ATOM_UTF8_STRING },
53         { "WINDOW", &ECORE_X_ATOM_WINDOW },
54
55         { "JXSelectionWindowProperty", &ECORE_X_ATOM_SELECTION_PROP_XDND },
56         { "XdndSelection", &ECORE_X_ATOM_SELECTION_XDND },
57         { "XdndAware", &ECORE_X_ATOM_XDND_AWARE },
58         { "XdndEnter", &ECORE_X_ATOM_XDND_ENTER },
59         { "XdndTypeList", &ECORE_X_ATOM_XDND_TYPE_LIST },
60         { "XdndPosition", &ECORE_X_ATOM_XDND_POSITION },
61         { "XdndActionCopy", &ECORE_X_ATOM_XDND_ACTION_COPY },
62         { "XdndActionMove", &ECORE_X_ATOM_XDND_ACTION_MOVE },
63         { "XdndActionPrivate", &ECORE_X_ATOM_XDND_ACTION_PRIVATE },
64         { "XdndActionAsk", &ECORE_X_ATOM_XDND_ACTION_ASK },
65         { "XdndActionList", &ECORE_X_ATOM_XDND_ACTION_LIST },
66         { "XdndActionLink", &ECORE_X_ATOM_XDND_ACTION_LINK },
67         { "XdndActionDescription", &ECORE_X_ATOM_XDND_ACTION_DESCRIPTION },
68         { "XdndProxy", &ECORE_X_ATOM_XDND_PROXY },
69         { "XdndStatus", &ECORE_X_ATOM_XDND_STATUS },
70         { "XdndLeave", &ECORE_X_ATOM_XDND_LEAVE },
71         { "XdndDrop", &ECORE_X_ATOM_XDND_DROP },
72         { "XdndFinished", &ECORE_X_ATOM_XDND_FINISHED },
73
74         { "XdndActionCopy", &ECORE_X_DND_ACTION_COPY },
75         { "XdndActionMove", &ECORE_X_DND_ACTION_MOVE },
76         { "XdndActionLink", &ECORE_X_DND_ACTION_LINK },
77         { "XdndActionAsk", &ECORE_X_DND_ACTION_ASK },
78         { "XdndActionPrivate", &ECORE_X_DND_ACTION_PRIVATE },
79
80         { "_E_FRAME_SIZE", &ECORE_X_ATOM_E_FRAME_SIZE },
81
82         { "_WIN_LAYER", &ECORE_X_ATOM_WIN_LAYER },
83
84         { "WM_NAME", &ECORE_X_ATOM_WM_NAME },
85         { "WM_ICON_NAME", &ECORE_X_ATOM_WM_ICON_NAME },
86         { "WM_NORMAL_HINTS", &ECORE_X_ATOM_WM_NORMAL_HINTS },
87         { "WM_SIZE_HINTS", &ECORE_X_ATOM_WM_SIZE_HINTS },
88         { "WM_HINTS", &ECORE_X_ATOM_WM_HINTS },
89         { "WM_CLASS", &ECORE_X_ATOM_WM_CLASS },
90         { "WM_TRANSIENT_FOR", &ECORE_X_ATOM_WM_TRANSIENT_FOR },
91         { "WM_PROTOCOLS", &ECORE_X_ATOM_WM_PROTOCOLS },
92         { "WM_COLORMAP_WINDOWS", &ECORE_X_ATOM_WM_COLORMAP_WINDOWS },
93         { "WM_COMMAND", &ECORE_X_ATOM_WM_COMMAND },
94         { "WM_CLIENT_MACHINE", &ECORE_X_ATOM_WM_CLIENT_MACHINE },
95
96         { "WM_STATE", &ECORE_X_ATOM_WM_STATE },
97         { "WM_ICON_SIZE", &ECORE_X_ATOM_WM_ICON_SIZE },
98
99         { "WM_CHANGE_STATE", &ECORE_X_ATOM_WM_CHANGE_STATE },
100
101         { "WM_TAKE_FOCUS", &ECORE_X_ATOM_WM_TAKE_FOCUS },
102         { "WM_SAVE_YOURSELF", &ECORE_X_ATOM_WM_SAVE_YOURSELF },
103         { "WM_DELETE_WINDOW", &ECORE_X_ATOM_WM_DELETE_WINDOW },
104
105         { "WM_COLORMAP_NOTIFY", &ECORE_X_ATOM_WM_COLORMAP_NOTIFY },
106
107         { "SM_CLIENT_ID", &ECORE_X_ATOM_SM_CLIENT_ID },
108         { "WM_CLIENT_LEADER", &ECORE_X_ATOM_WM_CLIENT_LEADER },
109         { "WM_WINDOW_ROLE", &ECORE_X_ATOM_WM_WINDOW_ROLE },
110
111         { "_MOTIF_WM_HINTS", &ECORE_X_ATOM_MOTIF_WM_HINTS },
112
113         { "_NET_SUPPORTED", &ECORE_X_ATOM_NET_SUPPORTED },
114         { "_NET_CLIENT_LIST", &ECORE_X_ATOM_NET_CLIENT_LIST },
115         { "_NET_CLIENT_LIST_STACKING", &ECORE_X_ATOM_NET_CLIENT_LIST_STACKING },
116         { "_NET_NUMBER_OF_DESKTOPS", &ECORE_X_ATOM_NET_NUMBER_OF_DESKTOPS },
117         { "_NET_DESKTOP_GEOMETRY", &ECORE_X_ATOM_NET_DESKTOP_GEOMETRY },
118         { "_NET_DESKTOP_VIEWPORT", &ECORE_X_ATOM_NET_DESKTOP_VIEWPORT },
119         { "_NET_CURRENT_DESKTOP", &ECORE_X_ATOM_NET_CURRENT_DESKTOP },
120         { "_NET_DESKTOP_NAMES", &ECORE_X_ATOM_NET_DESKTOP_NAMES },
121         { "_NET_ACTIVE_WINDOW", &ECORE_X_ATOM_NET_ACTIVE_WINDOW },
122         { "_NET_WORKAREA", &ECORE_X_ATOM_NET_WORKAREA },
123         { "_NET_SUPPORTING_WM_CHECK", &ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK },
124         { "_NET_VIRTUAL_ROOTS", &ECORE_X_ATOM_NET_VIRTUAL_ROOTS },
125         { "_NET_DESKTOP_LAYOUT", &ECORE_X_ATOM_NET_DESKTOP_LAYOUT },
126         { "_NET_SHOWING_DESKTOP", &ECORE_X_ATOM_NET_SHOWING_DESKTOP },
127
128         { "_NET_CLOSE_WINDOW", &ECORE_X_ATOM_NET_CLOSE_WINDOW },
129         { "_NET_MOVERESIZE_WINDOW", &ECORE_X_ATOM_NET_MOVERESIZE_WINDOW },
130         { "_NET_WM_MOVERESIZE", &ECORE_X_ATOM_NET_WM_MOVERESIZE },
131         { "_NET_RESTACK_WINDOW", &ECORE_X_ATOM_NET_RESTACK_WINDOW },
132
133         { "_NET_REQUEST_FRAME_EXTENTS", &ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS },
134
135         { "_NET_WM_NAME", &ECORE_X_ATOM_NET_WM_NAME },
136         { "_NET_WM_VISIBLE_NAME", &ECORE_X_ATOM_NET_WM_VISIBLE_NAME },
137         { "_NET_WM_ICON_NAME", &ECORE_X_ATOM_NET_WM_ICON_NAME },
138         { "_NET_WM_VISIBLE_ICON_NAME", &ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME },
139         { "_NET_WM_DESKTOP", &ECORE_X_ATOM_NET_WM_DESKTOP },
140
141         { "_NET_WM_WINDOW_TYPE", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE },
142         { "_NET_WM_WINDOW_TYPE_DESKTOP", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP },
143         { "_NET_WM_WINDOW_TYPE_DOCK", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK },
144         { "_NET_WM_WINDOW_TYPE_TOOLBAR", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLBAR },
145         { "_NET_WM_WINDOW_TYPE_MENU", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_MENU },
146         { "_NET_WM_WINDOW_TYPE_UTILITY", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_UTILITY },
147         { "_NET_WM_WINDOW_TYPE_SPLASH", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_SPLASH },
148         { "_NET_WM_WINDOW_TYPE_DIALOG", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DIALOG },
149         { "_NET_WM_WINDOW_TYPE_NORMAL", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NORMAL },
150         { "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DROPDOWN_MENU },
151         { "_NET_WM_WINDOW_TYPE_POPUP_MENU", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_POPUP_MENU },
152         { "_NET_WM_WINDOW_TYPE_TOOLTIP", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLTIP },
153         { "_NET_WM_WINDOW_TYPE_NOTIFICATION", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NOTIFICATION },
154         { "_NET_WM_WINDOW_TYPE_COMBO", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_COMBO },
155         { "_NET_WM_WINDOW_TYPE_DND", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DND },
156
157         { "_NET_WM_STATE", &ECORE_X_ATOM_NET_WM_STATE },
158         { "_NET_WM_STATE_MODAL", &ECORE_X_ATOM_NET_WM_STATE_MODAL },
159         { "_NET_WM_STATE_STICKY", &ECORE_X_ATOM_NET_WM_STATE_STICKY },
160         { "_NET_WM_STATE_MAXIMIZED_VERT", &ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_VERT },
161         { "_NET_WM_STATE_MAXIMIZED_HORZ", &ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_HORZ },
162         { "_NET_WM_STATE_SHADED", &ECORE_X_ATOM_NET_WM_STATE_SHADED },
163         { "_NET_WM_STATE_SKIP_TASKBAR", &ECORE_X_ATOM_NET_WM_STATE_SKIP_TASKBAR },
164         { "_NET_WM_STATE_SKIP_PAGER", &ECORE_X_ATOM_NET_WM_STATE_SKIP_PAGER },
165         { "_NET_WM_STATE_HIDDEN", &ECORE_X_ATOM_NET_WM_STATE_HIDDEN },
166         { "_NET_WM_STATE_FULLSCREEN", &ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN },
167         { "_NET_WM_STATE_ABOVE", &ECORE_X_ATOM_NET_WM_STATE_ABOVE },
168         { "_NET_WM_STATE_BELOW", &ECORE_X_ATOM_NET_WM_STATE_BELOW },
169         { "_NET_WM_STATE_DEMANDS_ATTENTION", &ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION },
170
171         { "_NET_WM_ALLOWED_ACTIONS", &ECORE_X_ATOM_NET_WM_ALLOWED_ACTIONS },
172         { "_NET_WM_ACTION_MOVE", &ECORE_X_ATOM_NET_WM_ACTION_MOVE },
173         { "_NET_WM_ACTION_RESIZE", &ECORE_X_ATOM_NET_WM_ACTION_RESIZE },
174         { "_NET_WM_ACTION_MINIMIZE", &ECORE_X_ATOM_NET_WM_ACTION_MINIMIZE },
175         { "_NET_WM_ACTION_SHADE", &ECORE_X_ATOM_NET_WM_ACTION_SHADE },
176         { "_NET_WM_ACTION_STICK", &ECORE_X_ATOM_NET_WM_ACTION_STICK },
177         { "_NET_WM_ACTION_MAXIMIZE_HORZ", &ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_HORZ },
178         { "_NET_WM_ACTION_MAXIMIZE_VERT", &ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_VERT },
179         { "_NET_WM_ACTION_FULLSCREEN", &ECORE_X_ATOM_NET_WM_ACTION_FULLSCREEN },
180         { "_NET_WM_ACTION_CHANGE_DESKTOP", &ECORE_X_ATOM_NET_WM_ACTION_CHANGE_DESKTOP },
181         { "_NET_WM_ACTION_CLOSE", &ECORE_X_ATOM_NET_WM_ACTION_CLOSE },
182         { "_NET_WM_ACTION_ABOVE", &ECORE_X_ATOM_NET_WM_ACTION_ABOVE },
183         { "_NET_WM_ACTION_BELOW", &ECORE_X_ATOM_NET_WM_ACTION_BELOW },
184
185         { "_NET_WM_STRUT", &ECORE_X_ATOM_NET_WM_STRUT },
186         { "_NET_WM_STRUT_PARTIAL", &ECORE_X_ATOM_NET_WM_STRUT_PARTIAL },
187         { "_NET_WM_ICON_GEOMETRY", &ECORE_X_ATOM_NET_WM_ICON_GEOMETRY },
188         { "_NET_WM_ICON", &ECORE_X_ATOM_NET_WM_ICON },
189         { "_NET_WM_PID", &ECORE_X_ATOM_NET_WM_PID },
190         { "_NET_WM_HANDLED_ICONS", &ECORE_X_ATOM_NET_WM_HANDLED_ICONS },
191         { "_NET_WM_USER_TIME", &ECORE_X_ATOM_NET_WM_USER_TIME },
192         { "_NET_STARTUP_ID", &ECORE_X_ATOM_NET_STARTUP_ID },
193         { "_NET_FRAME_EXTENTS", &ECORE_X_ATOM_NET_FRAME_EXTENTS },
194
195         { "_NET_WM_PING", &ECORE_X_ATOM_NET_WM_PING },
196         { "_NET_WM_SYNC_REQUEST", &ECORE_X_ATOM_NET_WM_SYNC_REQUEST },
197         { "_NET_WM_SYNC_REQUEST_COUNTER", &ECORE_X_ATOM_NET_WM_SYNC_REQUEST_COUNTER },
198
199         { "_NET_WM_WINDOW_OPACITY", &ECORE_X_ATOM_NET_WM_WINDOW_OPACITY },
200         { "_NET_WM_WINDOW_SHADOW", &ECORE_X_ATOM_NET_WM_WINDOW_SHADOW },
201         { "_NET_WM_WINDOW_SHADE", &ECORE_X_ATOM_NET_WM_WINDOW_SHADE },
202
203         { "TARGETS", &ECORE_X_ATOM_SELECTION_TARGETS },
204         { "CLIPBOARD", &ECORE_X_ATOM_SELECTION_CLIPBOARD },
205         { "PRIMARY", &ECORE_X_ATOM_SELECTION_PRIMARY },
206         { "SECONDARY", &ECORE_X_ATOM_SELECTION_SECONDARY },
207         { "_ECORE_SELECTION_PRIMARY", &ECORE_X_ATOM_SELECTION_PROP_PRIMARY },
208         { "_ECORE_SELECTION_SECONDARY", &ECORE_X_ATOM_SELECTION_PROP_SECONDARY },
209         { "_ECORE_SELECTION_CLIPBOARD", &ECORE_X_ATOM_SELECTION_PROP_CLIPBOARD },
210
211         { "_E_VIRTUAL_KEYBOARD", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD },
212         { "_E_VIRTUAL_KEYBOARD_STATE", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE },
213         { "_E_VIRTUAL_KEYBOARD_ON", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON },
214         { "_E_VIRTUAL_KEYBOARD_OFF", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF },
215         { "_E_VIRTUAL_KEYBOARD_ALPHA", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA },
216         { "_E_VIRTUAL_KEYBOARD_NUMERIC", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC },
217         { "_E_VIRTUAL_KEYBOARD_PIN", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN },
218         { "_E_VIRTUAL_KEYBOARD_PHONE_NUMBER", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER },
219         { "_E_VIRTUAL_KEYBOARD_HEX", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX },
220         { "_E_VIRTUAL_KEYBOARD_TERMINAL", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL },
221         { "_E_VIRTUAL_KEYBOARD_PASSWORD", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD }, 
222         { "_E_VIRTUAL_KEYBOARD_IP", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP }, 
223         { "_E_VIRTUAL_KEYBOARD_HOST", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST }, 
224         { "_E_VIRTUAL_KEYBOARD_FILE", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE }, 
225         { "_E_VIRTUAL_KEYBOARD_URL", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL }, 
226         { "_E_VIRTUAL_KEYBOARD_KEYPAD", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD }, 
227         { "_E_VIRTUAL_KEYBOARD_J2ME", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME }, 
228
229         { "_E_ILLUME_ZONE", &ECORE_X_ATOM_E_ILLUME_ZONE }, 
230         { "_E_ILLUME_ZONE_LIST", &ECORE_X_ATOM_E_ILLUME_ZONE_LIST }, 
231         { "_E_ILLUME_CONFORMANT", &ECORE_X_ATOM_E_ILLUME_CONFORMANT }, 
232         { "_E_ILLUME_MODE", &ECORE_X_ATOM_E_ILLUME_MODE }, 
233         { "_E_ILLUME_MODE_SINGLE", &ECORE_X_ATOM_E_ILLUME_MODE_SINGLE }, 
234         { "_E_ILLUME_MODE_DUAL_TOP", &ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP }, 
235         { "_E_ILLUME_MODE_DUAL_LEFT", &ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT }, 
236         { "_E_ILLUME_FOCUS_BACK", &ECORE_X_ATOM_E_ILLUME_FOCUS_BACK }, 
237         { "_E_ILLUME_FOCUS_FORWARD", &ECORE_X_ATOM_E_ILLUME_FOCUS_FORWARD }, 
238         { "_E_ILLUME_FOCUS_HOME", &ECORE_X_ATOM_E_ILLUME_FOCUS_HOME }, 
239         { "_E_ILLUME_CLOSE", &ECORE_X_ATOM_E_ILLUME_CLOSE }, 
240         { "_E_ILLUME_HOME_NEW", &ECORE_X_ATOM_E_ILLUME_HOME_NEW }, 
241         { "_E_ILLUME_HOME_DEL", &ECORE_X_ATOM_E_ILLUME_HOME_DEL }, 
242         { "_E_ILLUME_DRAG", &ECORE_X_ATOM_E_ILLUME_DRAG }, 
243         { "_E_ILLUME_DRAG_LOCKED", &ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED }, 
244         { "_E_ILLUME_DRAG_START", &ECORE_X_ATOM_E_ILLUME_DRAG_START }, 
245         { "_E_ILLUME_DRAG_END", &ECORE_X_ATOM_E_ILLUME_DRAG_END }, 
246         { "_E_ILLUME_INDICATOR_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY }, 
247         { "_E_ILLUME_SOFTKEY_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY },
248         { "_E_ILLUME_KEYBOARD_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY },
249         { "_E_ILLUME_QUICKPANEL", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL }, 
250         { "_E_ILLUME_QUICKPANEL_STATE", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE }, 
251         { "_E_ILLUME_QUICKPANEL_STATE_TOGGLE", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE_TOGGLE }, 
252         { "_E_ILLUME_QUICKPANEL_ON", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON }, 
253         { "_E_ILLUME_QUICKPANEL_OFF", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF }, 
254         { "_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR }, 
255         { "_E_ILLUME_QUICKPANEL_PRIORITY_MINOR", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR }, 
256         { "_E_ILLUME_QUICKPANEL_ZONE", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE }, 
257         { "_E_ILLUME_QUICKPANEL_POSITION_UPDATE", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE }, 
258
259         { "_E_COMP_SYNC_COUNTER", &ECORE_X_ATOM_E_COMP_SYNC_COUNTER },
260         { "_E_COMP_SYNC_DRAW_DONE", &ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE },
261         { "_E_COMP_SYNC_SUPPORTED", &ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED },
262         { "_E_COMP_SYNC_BEGIN", &ECORE_X_ATOM_E_COMP_SYNC_BEGIN },
263         { "_E_COMP_SYNC_END", &ECORE_X_ATOM_E_COMP_SYNC_END },
264         { "_E_COMP_SYNC_CANCEL", &ECORE_X_ATOM_E_COMP_SYNC_CANCEL },
265         
266         { "_E_COMP_FLUSH", &ECORE_X_ATOM_E_COMP_FLUSH },
267         { "_E_COMP_DUMP", &ECORE_X_ATOM_E_COMP_DUMP }
268      };
269    Atom *atoms;
270    char **names;
271    int i, num;
272
273    num = sizeof(items) / sizeof(Atom_Item);
274    atoms = alloca(num * sizeof(Atom));
275    names = alloca(num * sizeof(char *));
276    for (i = 0; i < num; i++) names[i] = (char *)items[i].name;
277    XInternAtoms(_ecore_x_disp, names, num, False, atoms);
278    for (i = 0; i < num; i++) *(items[i].atom) = atoms[i];
279 }
280
281 /**
282  * Retrieves the atom value associated with the given name.
283  * @param  name The given name.
284  * @return Associated atom value.
285  */
286 EAPI Ecore_X_Atom
287 ecore_x_atom_get(const char *name)
288 {
289    if (!_ecore_x_disp) return 0;
290    LOGFN(__FILE__, __LINE__, __FUNCTION__);
291    return XInternAtom(_ecore_x_disp, name, False);
292 }
293
294 EAPI void
295 ecore_x_atoms_get(const char **names, int num, Ecore_X_Atom *atoms)
296 {
297    Atom *atoms_int;
298    int i;
299
300    if (!_ecore_x_disp) return;
301    LOGFN(__FILE__, __LINE__, __FUNCTION__);
302    atoms_int = alloca(num * sizeof(Atom));
303    XInternAtoms(_ecore_x_disp, (char **)names, num, False, atoms_int);
304    for (i = 0; i < num; i++)
305      atoms[i] = atoms_int[i];
306 }
307
308 EAPI char *
309 ecore_x_atom_name_get(Ecore_X_Atom atom)
310 {
311    char *name;
312    char *xname;
313
314    if (!_ecore_x_disp) return NULL;
315    LOGFN(__FILE__, __LINE__, __FUNCTION__);
316
317    xname = XGetAtomName(_ecore_x_disp, atom);
318    if (!xname) return NULL;
319
320    name = strdup(xname);
321    XFree(xname);
322
323    return name;
324 }