Upstream merge
[framework/uifw/ecore.git] / src / lib / ecore_x / xlib / ecore_x_atoms.c
1 #ifdef HAVE_CONFIG_H
2 # include <config.h>
3 #endif /* ifdef HAVE_CONFIG_H */
4
5 #ifdef HAVE_ALLOCA_H
6 # include <alloca.h>
7 #elif defined __GNUC__
8 # define alloca __builtin_alloca
9 #elif defined _AIX
10 # define alloca __alloca
11 #elif defined _MSC_VER
12 # include <malloc.h>
13 # define alloca _alloca
14 #else /* ifdef HAVE_ALLOCA_H */
15 # include <stddef.h>
16 # ifdef  __cplusplus
17 extern "C"
18 # endif /* ifdef  __cplusplus */
19 void *alloca(size_t);
20 #endif /* ifdef HAVE_ALLOCA_H */
21
22 #include <string.h>
23
24 #include "Ecore.h"
25 #include "ecore_x_private.h"
26 #include "Ecore_X.h"
27 #include "Ecore_X_Atoms.h"
28 #include "ecore_x_atoms_decl.h"
29
30 void
31 _ecore_x_atoms_init(void)
32 {
33    const Atom_Item items[] =
34    {
35       { "ATOM", &ECORE_X_ATOM_ATOM },
36       { "CARDINAL", &ECORE_X_ATOM_CARDINAL },
37       { "COMPOUND_TEXT", &ECORE_X_ATOM_COMPOUND_TEXT },
38       { "FILE_NAME", &ECORE_X_ATOM_FILE_NAME },
39       { "STRING", &ECORE_X_ATOM_STRING },
40       { "TEXT", &ECORE_X_ATOM_TEXT },
41       { "UTF8_STRING", &ECORE_X_ATOM_UTF8_STRING },
42       { "WINDOW", &ECORE_X_ATOM_WINDOW },
43       { "PIXMAP", &ECORE_X_ATOM_PIXMAP },
44
45       { "JXSelectionWindowProperty", &ECORE_X_ATOM_SELECTION_PROP_XDND },
46       { "XdndSelection", &ECORE_X_ATOM_SELECTION_XDND },
47       { "XdndAware", &ECORE_X_ATOM_XDND_AWARE },
48       { "XdndEnter", &ECORE_X_ATOM_XDND_ENTER },
49       { "XdndTypeList", &ECORE_X_ATOM_XDND_TYPE_LIST },
50       { "XdndPosition", &ECORE_X_ATOM_XDND_POSITION },
51       { "XdndActionCopy", &ECORE_X_ATOM_XDND_ACTION_COPY },
52       { "XdndActionMove", &ECORE_X_ATOM_XDND_ACTION_MOVE },
53       { "XdndActionPrivate", &ECORE_X_ATOM_XDND_ACTION_PRIVATE },
54       { "XdndActionAsk", &ECORE_X_ATOM_XDND_ACTION_ASK },
55       { "XdndActionList", &ECORE_X_ATOM_XDND_ACTION_LIST },
56       { "XdndActionLink", &ECORE_X_ATOM_XDND_ACTION_LINK },
57       { "XdndActionDescription", &ECORE_X_ATOM_XDND_ACTION_DESCRIPTION },
58       { "XdndProxy", &ECORE_X_ATOM_XDND_PROXY },
59       { "XdndStatus", &ECORE_X_ATOM_XDND_STATUS },
60       { "XdndLeave", &ECORE_X_ATOM_XDND_LEAVE },
61       { "XdndDrop", &ECORE_X_ATOM_XDND_DROP },
62       { "XdndFinished", &ECORE_X_ATOM_XDND_FINISHED },
63
64       { "XdndActionCopy", &ECORE_X_DND_ACTION_COPY },
65       { "XdndActionMove", &ECORE_X_DND_ACTION_MOVE },
66       { "XdndActionLink", &ECORE_X_DND_ACTION_LINK },
67       { "XdndActionAsk", &ECORE_X_DND_ACTION_ASK },
68       { "XdndActionPrivate", &ECORE_X_DND_ACTION_PRIVATE },
69
70       { "_E_FRAME_SIZE", &ECORE_X_ATOM_E_FRAME_SIZE },
71
72       { "_WIN_LAYER", &ECORE_X_ATOM_WIN_LAYER },
73
74       { "WM_NAME", &ECORE_X_ATOM_WM_NAME },
75       { "WM_ICON_NAME", &ECORE_X_ATOM_WM_ICON_NAME },
76       { "WM_NORMAL_HINTS", &ECORE_X_ATOM_WM_NORMAL_HINTS },
77       { "WM_SIZE_HINTS", &ECORE_X_ATOM_WM_SIZE_HINTS },
78       { "WM_HINTS", &ECORE_X_ATOM_WM_HINTS },
79       { "WM_CLASS", &ECORE_X_ATOM_WM_CLASS },
80       { "WM_TRANSIENT_FOR", &ECORE_X_ATOM_WM_TRANSIENT_FOR },
81       { "WM_PROTOCOLS", &ECORE_X_ATOM_WM_PROTOCOLS },
82       { "WM_COLORMAP_WINDOWS", &ECORE_X_ATOM_WM_COLORMAP_WINDOWS },
83       { "WM_COMMAND", &ECORE_X_ATOM_WM_COMMAND },
84       { "WM_CLIENT_MACHINE", &ECORE_X_ATOM_WM_CLIENT_MACHINE },
85
86       { "WM_STATE", &ECORE_X_ATOM_WM_STATE },
87       { "WM_ICON_SIZE", &ECORE_X_ATOM_WM_ICON_SIZE },
88
89       { "WM_CHANGE_STATE", &ECORE_X_ATOM_WM_CHANGE_STATE },
90
91       { "WM_TAKE_FOCUS", &ECORE_X_ATOM_WM_TAKE_FOCUS },
92       { "WM_SAVE_YOURSELF", &ECORE_X_ATOM_WM_SAVE_YOURSELF },
93       { "WM_DELETE_WINDOW", &ECORE_X_ATOM_WM_DELETE_WINDOW },
94
95       { "WM_COLORMAP_NOTIFY", &ECORE_X_ATOM_WM_COLORMAP_NOTIFY },
96
97       { "SM_CLIENT_ID", &ECORE_X_ATOM_SM_CLIENT_ID },
98       { "WM_CLIENT_LEADER", &ECORE_X_ATOM_WM_CLIENT_LEADER },
99       { "WM_WINDOW_ROLE", &ECORE_X_ATOM_WM_WINDOW_ROLE },
100
101       { "_MOTIF_WM_HINTS", &ECORE_X_ATOM_MOTIF_WM_HINTS },
102
103       { "_NET_SUPPORTED", &ECORE_X_ATOM_NET_SUPPORTED },
104       { "_NET_CLIENT_LIST", &ECORE_X_ATOM_NET_CLIENT_LIST },
105       { "_NET_CLIENT_LIST_STACKING", &ECORE_X_ATOM_NET_CLIENT_LIST_STACKING },
106       { "_NET_NUMBER_OF_DESKTOPS", &ECORE_X_ATOM_NET_NUMBER_OF_DESKTOPS },
107       { "_NET_DESKTOP_GEOMETRY", &ECORE_X_ATOM_NET_DESKTOP_GEOMETRY },
108       { "_NET_DESKTOP_VIEWPORT", &ECORE_X_ATOM_NET_DESKTOP_VIEWPORT },
109       { "_NET_CURRENT_DESKTOP", &ECORE_X_ATOM_NET_CURRENT_DESKTOP },
110       { "_NET_DESKTOP_NAMES", &ECORE_X_ATOM_NET_DESKTOP_NAMES },
111       { "_NET_ACTIVE_WINDOW", &ECORE_X_ATOM_NET_ACTIVE_WINDOW },
112       { "_NET_WORKAREA", &ECORE_X_ATOM_NET_WORKAREA },
113       { "_NET_SUPPORTING_WM_CHECK", &ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK },
114       { "_NET_VIRTUAL_ROOTS", &ECORE_X_ATOM_NET_VIRTUAL_ROOTS },
115       { "_NET_DESKTOP_LAYOUT", &ECORE_X_ATOM_NET_DESKTOP_LAYOUT },
116       { "_NET_SHOWING_DESKTOP", &ECORE_X_ATOM_NET_SHOWING_DESKTOP },
117
118       { "_NET_CLOSE_WINDOW", &ECORE_X_ATOM_NET_CLOSE_WINDOW },
119       { "_NET_MOVERESIZE_WINDOW", &ECORE_X_ATOM_NET_MOVERESIZE_WINDOW },
120       { "_NET_WM_MOVERESIZE", &ECORE_X_ATOM_NET_WM_MOVERESIZE },
121       { "_NET_RESTACK_WINDOW", &ECORE_X_ATOM_NET_RESTACK_WINDOW },
122
123       { "_NET_REQUEST_FRAME_EXTENTS", &ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS },
124
125       { "_NET_WM_NAME", &ECORE_X_ATOM_NET_WM_NAME },
126       { "_NET_WM_VISIBLE_NAME", &ECORE_X_ATOM_NET_WM_VISIBLE_NAME },
127       { "_NET_WM_ICON_NAME", &ECORE_X_ATOM_NET_WM_ICON_NAME },
128       { "_NET_WM_VISIBLE_ICON_NAME", &ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME },
129       { "_NET_WM_DESKTOP", &ECORE_X_ATOM_NET_WM_DESKTOP },
130
131       { "_NET_WM_WINDOW_TYPE", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE },
132       { "_NET_WM_WINDOW_TYPE_DESKTOP", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP },
133       { "_NET_WM_WINDOW_TYPE_DOCK", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK },
134       { "_NET_WM_WINDOW_TYPE_TOOLBAR", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLBAR },
135       { "_NET_WM_WINDOW_TYPE_MENU", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_MENU },
136       { "_NET_WM_WINDOW_TYPE_UTILITY", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_UTILITY },
137       { "_NET_WM_WINDOW_TYPE_SPLASH", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_SPLASH },
138       { "_NET_WM_WINDOW_TYPE_DIALOG", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DIALOG },
139       { "_NET_WM_WINDOW_TYPE_NORMAL", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NORMAL },
140       { "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU",
141         &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DROPDOWN_MENU },
142       { "_NET_WM_WINDOW_TYPE_POPUP_MENU",
143         &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_POPUP_MENU },
144       { "_NET_WM_WINDOW_TYPE_TOOLTIP", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLTIP },
145       { "_NET_WM_WINDOW_TYPE_NOTIFICATION",
146         &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NOTIFICATION },
147       { "_NET_WM_WINDOW_TYPE_COMBO", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_COMBO },
148       { "_NET_WM_WINDOW_TYPE_DND", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DND },
149
150       { "_NET_WM_STATE", &ECORE_X_ATOM_NET_WM_STATE },
151       { "_NET_WM_STATE_MODAL", &ECORE_X_ATOM_NET_WM_STATE_MODAL },
152       { "_NET_WM_STATE_STICKY", &ECORE_X_ATOM_NET_WM_STATE_STICKY },
153       { "_NET_WM_STATE_MAXIMIZED_VERT",
154         &ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_VERT },
155       { "_NET_WM_STATE_MAXIMIZED_HORZ",
156         &ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_HORZ },
157       { "_NET_WM_STATE_SHADED", &ECORE_X_ATOM_NET_WM_STATE_SHADED },
158       { "_NET_WM_STATE_SKIP_TASKBAR", &ECORE_X_ATOM_NET_WM_STATE_SKIP_TASKBAR },
159       { "_NET_WM_STATE_SKIP_PAGER", &ECORE_X_ATOM_NET_WM_STATE_SKIP_PAGER },
160       { "_NET_WM_STATE_HIDDEN", &ECORE_X_ATOM_NET_WM_STATE_HIDDEN },
161       { "_NET_WM_STATE_FULLSCREEN", &ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN },
162       { "_NET_WM_STATE_ABOVE", &ECORE_X_ATOM_NET_WM_STATE_ABOVE },
163       { "_NET_WM_STATE_BELOW", &ECORE_X_ATOM_NET_WM_STATE_BELOW },
164       { "_NET_WM_STATE_DEMANDS_ATTENTION",
165         &ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION },
166
167       { "_NET_WM_ALLOWED_ACTIONS", &ECORE_X_ATOM_NET_WM_ALLOWED_ACTIONS },
168       { "_NET_WM_ACTION_MOVE", &ECORE_X_ATOM_NET_WM_ACTION_MOVE },
169       { "_NET_WM_ACTION_RESIZE", &ECORE_X_ATOM_NET_WM_ACTION_RESIZE },
170       { "_NET_WM_ACTION_MINIMIZE", &ECORE_X_ATOM_NET_WM_ACTION_MINIMIZE },
171       { "_NET_WM_ACTION_SHADE", &ECORE_X_ATOM_NET_WM_ACTION_SHADE },
172       { "_NET_WM_ACTION_STICK", &ECORE_X_ATOM_NET_WM_ACTION_STICK },
173       { "_NET_WM_ACTION_MAXIMIZE_HORZ",
174         &ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_HORZ },
175       { "_NET_WM_ACTION_MAXIMIZE_VERT",
176         &ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_VERT },
177       { "_NET_WM_ACTION_FULLSCREEN", &ECORE_X_ATOM_NET_WM_ACTION_FULLSCREEN },
178       { "_NET_WM_ACTION_CHANGE_DESKTOP",
179         &ECORE_X_ATOM_NET_WM_ACTION_CHANGE_DESKTOP },
180       { "_NET_WM_ACTION_CLOSE", &ECORE_X_ATOM_NET_WM_ACTION_CLOSE },
181       { "_NET_WM_ACTION_ABOVE", &ECORE_X_ATOM_NET_WM_ACTION_ABOVE },
182       { "_NET_WM_ACTION_BELOW", &ECORE_X_ATOM_NET_WM_ACTION_BELOW },
183
184       { "_NET_WM_STRUT", &ECORE_X_ATOM_NET_WM_STRUT },
185       { "_NET_WM_STRUT_PARTIAL", &ECORE_X_ATOM_NET_WM_STRUT_PARTIAL },
186       { "_NET_WM_ICON_GEOMETRY", &ECORE_X_ATOM_NET_WM_ICON_GEOMETRY },
187       { "_NET_WM_ICON", &ECORE_X_ATOM_NET_WM_ICON },
188       { "_NET_WM_PID", &ECORE_X_ATOM_NET_WM_PID },
189       { "_NET_WM_HANDLED_ICONS", &ECORE_X_ATOM_NET_WM_HANDLED_ICONS },
190       { "_NET_WM_USER_TIME", &ECORE_X_ATOM_NET_WM_USER_TIME },
191       { "_NET_STARTUP_ID", &ECORE_X_ATOM_NET_STARTUP_ID },
192       { "_NET_FRAME_EXTENTS", &ECORE_X_ATOM_NET_FRAME_EXTENTS },
193
194       { "_NET_WM_PING", &ECORE_X_ATOM_NET_WM_PING },
195       { "_NET_WM_SYNC_REQUEST", &ECORE_X_ATOM_NET_WM_SYNC_REQUEST },
196       { "_NET_WM_SYNC_REQUEST_COUNTER",
197         &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",
219         &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER },
220       { "_E_VIRTUAL_KEYBOARD_HEX", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX },
221       { "_E_VIRTUAL_KEYBOARD_TERMINAL",
222         &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL },
223       { "_E_VIRTUAL_KEYBOARD_PASSWORD",
224         &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD },
225       { "_E_VIRTUAL_KEYBOARD_IP", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_IP },
226       { "_E_VIRTUAL_KEYBOARD_HOST", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HOST },
227       { "_E_VIRTUAL_KEYBOARD_FILE", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_FILE },
228       { "_E_VIRTUAL_KEYBOARD_URL", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_URL },
229       { "_E_VIRTUAL_KEYBOARD_KEYPAD", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_KEYPAD },
230       { "_E_VIRTUAL_KEYBOARD_J2ME", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_J2ME },
231
232       { "_E_ILLUME_ZONE", &ECORE_X_ATOM_E_ILLUME_ZONE },
233       { "_E_ILLUME_ZONE_LIST", &ECORE_X_ATOM_E_ILLUME_ZONE_LIST },
234       { "_E_ILLUME_CONFORMANT", &ECORE_X_ATOM_E_ILLUME_CONFORMANT },
235       { "_E_ILLUME_MODE", &ECORE_X_ATOM_E_ILLUME_MODE },
236       { "_E_ILLUME_MODE_SINGLE", &ECORE_X_ATOM_E_ILLUME_MODE_SINGLE },
237       { "_E_ILLUME_MODE_DUAL_TOP", &ECORE_X_ATOM_E_ILLUME_MODE_DUAL_TOP },
238       { "_E_ILLUME_MODE_DUAL_LEFT", &ECORE_X_ATOM_E_ILLUME_MODE_DUAL_LEFT },
239       { "_E_ILLUME_FOCUS_BACK", &ECORE_X_ATOM_E_ILLUME_FOCUS_BACK },
240       { "_E_ILLUME_FOCUS_FORWARD", &ECORE_X_ATOM_E_ILLUME_FOCUS_FORWARD },
241       { "_E_ILLUME_FOCUS_HOME", &ECORE_X_ATOM_E_ILLUME_FOCUS_HOME },
242       { "_E_ILLUME_CLOSE", &ECORE_X_ATOM_E_ILLUME_CLOSE },
243       { "_E_ILLUME_HOME_NEW", &ECORE_X_ATOM_E_ILLUME_HOME_NEW },
244       { "_E_ILLUME_HOME_DEL", &ECORE_X_ATOM_E_ILLUME_HOME_DEL },
245       { "_E_ILLUME_DRAG", &ECORE_X_ATOM_E_ILLUME_DRAG },
246       { "_E_ILLUME_DRAG_LOCKED", &ECORE_X_ATOM_E_ILLUME_DRAG_LOCKED },
247       { "_E_ILLUME_DRAG_START", &ECORE_X_ATOM_E_ILLUME_DRAG_START },
248       { "_E_ILLUME_DRAG_END", &ECORE_X_ATOM_E_ILLUME_DRAG_END },
249       { "_E_ILLUME_INDICATOR_GEOMETRY",
250         &ECORE_X_ATOM_E_ILLUME_INDICATOR_GEOMETRY },
251       { "_E_ILLUME_SOFTKEY_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_SOFTKEY_GEOMETRY },
252       { "_E_ILLUME_KEYBOARD_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_KEYBOARD_GEOMETRY },
253       { "_E_ILLUME_QUICKPANEL", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL },
254       { "_E_ILLUME_QUICKPANEL_STATE", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE },
255       { "_E_ILLUME_QUICKPANEL_STATE_TOGGLE",
256         &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE_TOGGLE },
257       { "_E_ILLUME_QUICKPANEL_ON", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON },
258       { "_E_ILLUME_QUICKPANEL_OFF", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF },
259       { "_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR",
260         &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MAJOR },
261       { "_E_ILLUME_QUICKPANEL_PRIORITY_MINOR",
262         &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_PRIORITY_MINOR },
263       { "_E_ILLUME_QUICKPANEL_ZONE", &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ZONE },
264       { "_E_ILLUME_QUICKPANEL_POSITION_UPDATE",
265         &ECORE_X_ATOM_E_ILLUME_QUICKPANEL_POSITION_UPDATE },
266       { "_E_ILLUME_INDICATOR_STATE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_STATE },
267       { "_E_ILLUME_INDICATOR_ON", &ECORE_X_ATOM_E_ILLUME_INDICATOR_ON },
268       { "_E_ILLUME_INDICATOR_OFF", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OFF },
269       { "_E_ILLUME_INDICATOR_OPACITY_MODE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE },
270       { "_E_ILLUME_INDICATOR_OPAQUE", &ECORE_X_ATOM_E_ILLUME_INDICATOR_OPAQUE },
271       { "_E_ILLUME_INDICATOR_TRANSLUCENT", &ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSLUCENT },
272       { "_E_ILLUME_INDICATOR_TRANSPARENT", &ECORE_X_ATOM_E_ILLUME_INDICATOR_TRANSPARENT },
273       { "_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLES", &ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_AVAILABLE_ANGLE },
274       { "_E_ILLUME_ROTATE_WINDOW_ANGLE", &ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE },
275       { "_E_ILLUME_ROTATE_ROOT_ANGLE", &ECORE_X_ATOM_E_ILLUME_ROTATE_ROOT_ANGLE },
276       { "_E_ILLUME_CLIPBOARD_STATE", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_STATE },
277       { "_E_ILLUME_CLIPBOARD_ON", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_ON },
278       { "_E_ILLUME_CLIPBOARD_OFF", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_OFF },
279       { "_E_ILLUME_CLIPBOARD_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_CLIPBOARD_GEOMETRY },
280       { "_E_ILLUME_WINDOW_STATE", &ECORE_X_ATOM_E_ILLUME_WINDOW_STATE },
281       { "_E_ILLUME_WINDOW_STATE_NORMAL", &ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_NORMAL },
282       { "_E_ILLUME_WINDOW_STATE_FLOATING", &ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_FLOATING },
283       { "_E_COMP_SYNC_COUNTER", &ECORE_X_ATOM_E_COMP_SYNC_COUNTER },
284       { "_E_COMP_SYNC_DRAW_DONE", &ECORE_X_ATOM_E_COMP_SYNC_DRAW_DONE },
285       { "_E_COMP_SYNC_SUPPORTED", &ECORE_X_ATOM_E_COMP_SYNC_SUPPORTED },
286       { "_E_COMP_SYNC_BEGIN", &ECORE_X_ATOM_E_COMP_SYNC_BEGIN },
287       { "_E_COMP_SYNC_END", &ECORE_X_ATOM_E_COMP_SYNC_END },
288       { "_E_COMP_SYNC_CANCEL", &ECORE_X_ATOM_E_COMP_SYNC_CANCEL },
289
290       { "_E_COMP_FLUSH", &ECORE_X_ATOM_E_COMP_FLUSH },
291       { "_E_COMP_DUMP", &ECORE_X_ATOM_E_COMP_DUMP },
292       { "_E_COMP_PIXMAP", &ECORE_X_ATOM_E_COMP_PIXMAP },
293       { "_E_VIDEO_PARENT", &ECORE_X_ATOM_E_VIDEO_PARENT },
294       { "_E_VIDEO_POSITION", &ECORE_X_ATOM_E_VIDEO_POSITION },
295
296       { "_E_PROFILE", &ECORE_X_ATOM_E_PROFILE },
297       { "_E_PROFILE_LIST", &ECORE_X_ATOM_E_PROFILE_LIST }
298
299       /* SLP additions after the comma */ ,
300
301       /* for sliding window */
302       { "_E_ILLUME_SLIDING_WIN_STATE", &ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE },
303       { "_E_ILLUME_SLIDING_WIN_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY },
304
305       /* for SDB(Samsung Debug Bridge) */
306       { "_SDB_SERVER_CONNECT", &ECORE_X_ATOM_SDB_SERVER_CONNECT },
307       { "_SDB_SERVER_DISCONNECT", &ECORE_X_ATOM_SDB_SERVER_DISCONNECT }
308    };
309    Atom *atoms;
310    char **names;
311    int i, num;
312
313    num = sizeof(atom_items) / sizeof(Atom_Item);
314    atoms = alloca(num * sizeof(Atom));
315    names = alloca(num * sizeof(char *));
316    for (i = 0; i < num; i++)
317      names[i] = (char *) atom_items[i].name;
318    XInternAtoms(_ecore_x_disp, names, num, False, atoms);
319    for (i = 0; i < num; i++)
320      *(atom_items[i].atom) = atoms[i];
321 }
322
323 /**
324  * Retrieves the atom value associated with the given name.
325  * @param  name The given name.
326  * @return Associated atom value.
327  */
328 EAPI Ecore_X_Atom
329 ecore_x_atom_get(const char *name)
330 {
331    if (!_ecore_x_disp)
332      return 0;
333
334    LOGFN(__FILE__, __LINE__, __FUNCTION__);
335    return XInternAtom(_ecore_x_disp, name, False);
336 }
337
338 EAPI void
339 ecore_x_atoms_get(const char **names,
340                   int num,
341                   Ecore_X_Atom *atoms)
342 {
343    Atom *atoms_int;
344    int i;
345
346    if (!_ecore_x_disp)
347      return;
348
349    LOGFN(__FILE__, __LINE__, __FUNCTION__);
350    atoms_int = alloca(num * sizeof(Atom));
351    XInternAtoms(_ecore_x_disp, (char **)names, num, False, atoms_int);
352    for (i = 0; i < num; i++)
353      atoms[i] = atoms_int[i];
354 }
355
356 EAPI char *
357 ecore_x_atom_name_get(Ecore_X_Atom atom)
358 {
359    char *name;
360    char *xname;
361
362    if (!_ecore_x_disp)
363      return NULL;
364
365    LOGFN(__FILE__, __LINE__, __FUNCTION__);
366
367    xname = XGetAtomName(_ecore_x_disp, atom);
368    if (!xname)
369      return NULL;
370
371    name = strdup(xname);
372    XFree(xname);
373
374    return name;
375 }
376