0ca85c12a1979208e0de7e29657b5945f1d6ffdc
[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 #include "config.h"
6 #include "Ecore.h"
7 #include "ecore_x_private.h"
8 #include "Ecore_X.h"
9 #include "Ecore_X_Atoms.h"
10
11 #include "ecore_x_atoms_decl.h"
12
13 typedef struct
14 {
15    const char   *name;
16    Ecore_X_Atom *atom;
17 } Atom_Item;
18
19 void
20 _ecore_x_atoms_init(void)
21 {
22    const Atom_Item items[] =
23      {
24         { "ATOM", &ECORE_X_ATOM_ATOM },
25         { "CARDINAL", &ECORE_X_ATOM_CARDINAL },
26         { "COMPOUND_TEXT", &ECORE_X_ATOM_COMPOUND_TEXT },
27         { "FILE_NAME", &ECORE_X_ATOM_FILE_NAME },
28         { "STRING", &ECORE_X_ATOM_STRING },
29         { "TEXT", &ECORE_X_ATOM_TEXT },
30         { "UTF8_STRING", &ECORE_X_ATOM_UTF8_STRING },
31         { "WINDOW", &ECORE_X_ATOM_WINDOW },
32
33         { "JXSelectionWindowProperty", &ECORE_X_ATOM_SELECTION_PROP_XDND },
34         { "XdndSelection", &ECORE_X_ATOM_SELECTION_XDND },
35         { "XdndAware", &ECORE_X_ATOM_XDND_AWARE },
36         { "XdndEnter", &ECORE_X_ATOM_XDND_ENTER },
37         { "XdndTypeList", &ECORE_X_ATOM_XDND_TYPE_LIST },
38         { "XdndPosition", &ECORE_X_ATOM_XDND_POSITION },
39         { "XdndActionCopy", &ECORE_X_ATOM_XDND_ACTION_COPY },
40         { "XdndActionMove", &ECORE_X_ATOM_XDND_ACTION_MOVE },
41         { "XdndActionPrivate", &ECORE_X_ATOM_XDND_ACTION_PRIVATE },
42         { "XdndActionAsk", &ECORE_X_ATOM_XDND_ACTION_ASK },
43         { "XdndActionList", &ECORE_X_ATOM_XDND_ACTION_LIST },
44         { "XdndActionLink", &ECORE_X_ATOM_XDND_ACTION_LINK },
45         { "XdndActionDescription", &ECORE_X_ATOM_XDND_ACTION_DESCRIPTION },
46         { "XdndProxy", &ECORE_X_ATOM_XDND_PROXY },
47         { "XdndStatus", &ECORE_X_ATOM_XDND_STATUS },
48         { "XdndLeave", &ECORE_X_ATOM_XDND_LEAVE },
49         { "XdndDrop", &ECORE_X_ATOM_XDND_DROP },
50         { "XdndFinished", &ECORE_X_ATOM_XDND_FINISHED },
51
52         { "XdndActionCopy", &ECORE_X_DND_ACTION_COPY },
53         { "XdndActionMove", &ECORE_X_DND_ACTION_MOVE },
54         { "XdndActionLink", &ECORE_X_DND_ACTION_LINK },
55         { "XdndActionAsk", &ECORE_X_DND_ACTION_ASK },
56         { "XdndActionPrivate", &ECORE_X_DND_ACTION_PRIVATE },
57
58         { "_E_FRAME_SIZE", &ECORE_X_ATOM_E_FRAME_SIZE },
59
60         { "_WIN_LAYER", &ECORE_X_ATOM_WIN_LAYER },
61
62         { "WM_NAME", &ECORE_X_ATOM_WM_NAME },
63         { "WM_ICON_NAME", &ECORE_X_ATOM_WM_ICON_NAME },
64         { "WM_NORMAL_HINTS", &ECORE_X_ATOM_WM_NORMAL_HINTS },
65         { "WM_SIZE_HINTS", &ECORE_X_ATOM_WM_SIZE_HINTS },
66         { "WM_HINTS", &ECORE_X_ATOM_WM_HINTS },
67         { "WM_CLASS", &ECORE_X_ATOM_WM_CLASS },
68         { "WM_TRANSIENT_FOR", &ECORE_X_ATOM_WM_TRANSIENT_FOR },
69         { "WM_PROTOCOLS", &ECORE_X_ATOM_WM_PROTOCOLS },
70         { "WM_COLORMAP_WINDOWS", &ECORE_X_ATOM_WM_COLORMAP_WINDOWS },
71         { "WM_COMMAND", &ECORE_X_ATOM_WM_COMMAND },
72         { "WM_CLIENT_MACHINE", &ECORE_X_ATOM_WM_CLIENT_MACHINE },
73
74         { "WM_STATE", &ECORE_X_ATOM_WM_STATE },
75         { "WM_ICON_SIZE", &ECORE_X_ATOM_WM_ICON_SIZE },
76
77         { "WM_CHANGE_STATE", &ECORE_X_ATOM_WM_CHANGE_STATE },
78
79         { "WM_TAKE_FOCUS", &ECORE_X_ATOM_WM_TAKE_FOCUS },
80         { "WM_SAVE_YOURSELF", &ECORE_X_ATOM_WM_SAVE_YOURSELF },
81         { "WM_DELETE_WINDOW", &ECORE_X_ATOM_WM_DELETE_WINDOW },
82
83         { "WM_COLORMAP_NOTIFY", &ECORE_X_ATOM_WM_COLORMAP_NOTIFY },
84
85         { "SM_CLIENT_ID", &ECORE_X_ATOM_SM_CLIENT_ID },
86         { "WM_CLIENT_LEADER", &ECORE_X_ATOM_WM_CLIENT_LEADER },
87         { "WM_WINDOW_ROLE", &ECORE_X_ATOM_WM_WINDOW_ROLE },
88
89         { "_MOTIF_WM_HINTS", &ECORE_X_ATOM_MOTIF_WM_HINTS },
90
91         { "_NET_SUPPORTED", &ECORE_X_ATOM_NET_SUPPORTED },
92         { "_NET_CLIENT_LIST", &ECORE_X_ATOM_NET_CLIENT_LIST },
93         { "_NET_CLIENT_LIST_STACKING", &ECORE_X_ATOM_NET_CLIENT_LIST_STACKING },
94         { "_NET_NUMBER_OF_DESKTOPS", &ECORE_X_ATOM_NET_NUMBER_OF_DESKTOPS },
95         { "_NET_DESKTOP_GEOMETRY", &ECORE_X_ATOM_NET_DESKTOP_GEOMETRY },
96         { "_NET_DESKTOP_VIEWPORT", &ECORE_X_ATOM_NET_DESKTOP_VIEWPORT },
97         { "_NET_CURRENT_DESKTOP", &ECORE_X_ATOM_NET_CURRENT_DESKTOP },
98         { "_NET_DESKTOP_NAMES", &ECORE_X_ATOM_NET_DESKTOP_NAMES },
99         { "_NET_ACTIVE_WINDOW", &ECORE_X_ATOM_NET_ACTIVE_WINDOW },
100         { "_NET_WORKAREA", &ECORE_X_ATOM_NET_WORKAREA },
101         { "_NET_SUPPORTING_WM_CHECK", &ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK },
102         { "_NET_VIRTUAL_ROOTS", &ECORE_X_ATOM_NET_VIRTUAL_ROOTS },
103         { "_NET_DESKTOP_LAYOUT", &ECORE_X_ATOM_NET_DESKTOP_LAYOUT },
104         { "_NET_SHOWING_DESKTOP", &ECORE_X_ATOM_NET_SHOWING_DESKTOP },
105
106         { "_NET_CLOSE_WINDOW", &ECORE_X_ATOM_NET_CLOSE_WINDOW },
107         { "_NET_MOVERESIZE_WINDOW", &ECORE_X_ATOM_NET_MOVERESIZE_WINDOW },
108         { "_NET_WM_MOVERESIZE", &ECORE_X_ATOM_NET_WM_MOVERESIZE },
109         { "_NET_RESTACK_WINDOW", &ECORE_X_ATOM_NET_RESTACK_WINDOW },
110
111         { "_NET_REQUEST_FRAME_EXTENTS", &ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS },
112
113         { "_NET_WM_NAME", &ECORE_X_ATOM_NET_WM_NAME },
114         { "_NET_WM_VISIBLE_NAME", &ECORE_X_ATOM_NET_WM_VISIBLE_NAME },
115         { "_NET_WM_ICON_NAME", &ECORE_X_ATOM_NET_WM_ICON_NAME },
116         { "_NET_WM_VISIBLE_ICON_NAME", &ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME },
117         { "_NET_WM_DESKTOP", &ECORE_X_ATOM_NET_WM_DESKTOP },
118
119         { "_NET_WM_WINDOW_TYPE", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE },
120         { "_NET_WM_WINDOW_TYPE_DESKTOP", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP },
121         { "_NET_WM_WINDOW_TYPE_DOCK", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK },
122         { "_NET_WM_WINDOW_TYPE_TOOLBAR", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLBAR },
123         { "_NET_WM_WINDOW_TYPE_MENU", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_MENU },
124         { "_NET_WM_WINDOW_TYPE_UTILITY", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_UTILITY },
125         { "_NET_WM_WINDOW_TYPE_SPLASH", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_SPLASH },
126         { "_NET_WM_WINDOW_TYPE_DIALOG", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DIALOG },
127         { "_NET_WM_WINDOW_TYPE_NORMAL", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NORMAL },
128
129         { "_NET_WM_STATE", &ECORE_X_ATOM_NET_WM_STATE },
130         { "_NET_WM_STATE_MODAL", &ECORE_X_ATOM_NET_WM_STATE_MODAL },
131         { "_NET_WM_STATE_STICKY", &ECORE_X_ATOM_NET_WM_STATE_STICKY },
132         { "_NET_WM_STATE_MAXIMIZED_VERT", &ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_VERT },
133         { "_NET_WM_STATE_MAXIMIZED_HORZ", &ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_HORZ },
134         { "_NET_WM_STATE_SHADED", &ECORE_X_ATOM_NET_WM_STATE_SHADED },
135         { "_NET_WM_STATE_SKIP_TASKBAR", &ECORE_X_ATOM_NET_WM_STATE_SKIP_TASKBAR },
136         { "_NET_WM_STATE_SKIP_PAGER", &ECORE_X_ATOM_NET_WM_STATE_SKIP_PAGER },
137         { "_NET_WM_STATE_HIDDEN", &ECORE_X_ATOM_NET_WM_STATE_HIDDEN },
138         { "_NET_WM_STATE_FULLSCREEN", &ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN },
139         { "_NET_WM_STATE_ABOVE", &ECORE_X_ATOM_NET_WM_STATE_ABOVE },
140         { "_NET_WM_STATE_BELOW", &ECORE_X_ATOM_NET_WM_STATE_BELOW },
141         { "_NET_WM_STATE_DEMANDS_ATTENTION", &ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION },
142
143         { "_NET_WM_ALLOWED_ACTIONS", &ECORE_X_ATOM_NET_WM_ALLOWED_ACTIONS },
144         { "_NET_WM_ACTION_MOVE", &ECORE_X_ATOM_NET_WM_ACTION_MOVE },
145         { "_NET_WM_ACTION_RESIZE", &ECORE_X_ATOM_NET_WM_ACTION_RESIZE },
146         { "_NET_WM_ACTION_MINIMIZE", &ECORE_X_ATOM_NET_WM_ACTION_MINIMIZE },
147         { "_NET_WM_ACTION_SHADE", &ECORE_X_ATOM_NET_WM_ACTION_SHADE },
148         { "_NET_WM_ACTION_STICK", &ECORE_X_ATOM_NET_WM_ACTION_STICK },
149         { "_NET_WM_ACTION_MAXIMIZE_HORZ", &ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_HORZ },
150         { "_NET_WM_ACTION_MAXIMIZE_VERT", &ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_VERT },
151         { "_NET_WM_ACTION_FULLSCREEN", &ECORE_X_ATOM_NET_WM_ACTION_FULLSCREEN },
152         { "_NET_WM_ACTION_CHANGE_DESKTOP", &ECORE_X_ATOM_NET_WM_ACTION_CHANGE_DESKTOP },
153         { "_NET_WM_ACTION_CLOSE", &ECORE_X_ATOM_NET_WM_ACTION_CLOSE },
154
155         { "_NET_WM_STRUT", &ECORE_X_ATOM_NET_WM_STRUT },
156         { "_NET_WM_STRUT_PARTIAL", &ECORE_X_ATOM_NET_WM_STRUT_PARTIAL },
157         { "_NET_WM_ICON_GEOMETRY", &ECORE_X_ATOM_NET_WM_ICON_GEOMETRY },
158         { "_NET_WM_ICON", &ECORE_X_ATOM_NET_WM_ICON },
159         { "_NET_WM_PID", &ECORE_X_ATOM_NET_WM_PID },
160         { "_NET_WM_HANDLED_ICONS", &ECORE_X_ATOM_NET_WM_HANDLED_ICONS },
161         { "_NET_WM_USER_TIME", &ECORE_X_ATOM_NET_WM_USER_TIME },
162         { "_NET_STARTUP_ID", &ECORE_X_ATOM_NET_STARTUP_ID },
163         { "_NET_FRAME_EXTENTS", &ECORE_X_ATOM_NET_FRAME_EXTENTS },
164
165         { "_NET_WM_PING", &ECORE_X_ATOM_NET_WM_PING },
166         { "_NET_WM_SYNC_REQUEST", &ECORE_X_ATOM_NET_WM_SYNC_REQUEST },
167         { "_NET_WM_SYNC_REQUEST_COUNTER", &ECORE_X_ATOM_NET_WM_SYNC_REQUEST_COUNTER },
168
169         { "_NET_WM_WINDOW_OPACITY", &ECORE_X_ATOM_NET_WM_WINDOW_OPACITY },
170         { "_NET_WM_WINDOW_SHADOW", &ECORE_X_ATOM_NET_WM_WINDOW_SHADOW },
171         { "_NET_WM_WINDOW_SHADE", &ECORE_X_ATOM_NET_WM_WINDOW_SHADE },
172
173         { "TARGETS", &ECORE_X_ATOM_SELECTION_TARGETS },
174         { "CLIPBOARD", &ECORE_X_ATOM_SELECTION_PRIMARY },
175         { "PRIMARY", &ECORE_X_ATOM_SELECTION_SECONDARY },
176         { "SECONDARY", &ECORE_X_ATOM_SELECTION_CLIPBOARD },
177         { "_ECORE_SELECTION_PRIMARY", &ECORE_X_ATOM_SELECTION_PROP_PRIMARY },
178         { "_ECORE_SELECTION_SECONDARY", &ECORE_X_ATOM_SELECTION_PROP_SECONDARY },
179         { "_ECORE_SELECTION_CLIPBOARD", &ECORE_X_ATOM_SELECTION_PROP_CLIPBOARD },
180
181         { "_E_VIRTUAL_KEYBOARD", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD },
182         { "_E_VIRTUAL_KEYBOARD_STATE", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_STATE },
183         { "_E_VIRTUAL_KEYBOARD_ON", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ON },
184         { "_E_VIRTUAL_KEYBOARD_OFF", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_OFF },
185         { "_E_VIRTUAL_KEYBOARD_ALPHA", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_ALPHA },
186         { "_E_VIRTUAL_KEYBOARD_NUMERIC", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_NUMERIC },
187         { "_E_VIRTUAL_KEYBOARD_PIN", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PIN },
188         { "_E_VIRTUAL_KEYBOARD_PHONE_NUMBER", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PHONE_NUMBER },
189         { "_E_VIRTUAL_KEYBOARD_HEX", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_HEX },
190         { "_E_VIRTUAL_KEYBOARD_TERMINAL", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_TERMINAL },
191         { "_E_VIRTUAL_KEYBOARD_PASSWORD", &ECORE_X_ATOM_E_VIRTUAL_KEYBOARD_PASSWORD }
192      };
193    Atom *atoms;
194    char **names;
195    int i, num;
196
197    num = sizeof(items) / sizeof(Atom_Item);
198    atoms = alloca(num * sizeof(Atom));
199    names = alloca(num * sizeof(char *));
200    for (i = 0; i < num; i++) names[i] = (char *)items[i].name;
201    XInternAtoms(_ecore_x_disp, names, num, False, atoms);
202    for (i = 0; i < num; i++) *(items[i].atom) = atoms[i];
203 }