/* * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 */ #include "config.h" #include "Ecore.h" #include "ecore_x_private.h" #include "Ecore_X.h" #include "Ecore_X_Atoms.h" #include "ecore_x_atoms_decl.h" typedef struct { const char *name; Ecore_X_Atom *atom; } Atom_Item; void _ecore_x_atoms_init(void) { const Atom_Item items[] = { { "ATOM", &ECORE_X_ATOM_ATOM }, { "CARDINAL", &ECORE_X_ATOM_CARDINAL }, { "COMPOUND_TEXT", &ECORE_X_ATOM_COMPOUND_TEXT }, { "FILE_NAME", &ECORE_X_ATOM_FILE_NAME }, { "STRING", &ECORE_X_ATOM_STRING }, { "TEXT", &ECORE_X_ATOM_TEXT }, { "UTF8_STRING", &ECORE_X_ATOM_UTF8_STRING }, { "WINDOW", &ECORE_X_ATOM_WINDOW }, { "JXSelectionWindowProperty", &ECORE_X_ATOM_SELECTION_PROP_XDND }, { "XdndSelection", &ECORE_X_ATOM_SELECTION_XDND }, { "XdndAware", &ECORE_X_ATOM_XDND_AWARE }, { "XdndEnter", &ECORE_X_ATOM_XDND_ENTER }, { "XdndTypeList", &ECORE_X_ATOM_XDND_TYPE_LIST }, { "XdndPosition", &ECORE_X_ATOM_XDND_POSITION }, { "XdndActionCopy", &ECORE_X_ATOM_XDND_ACTION_COPY }, { "XdndActionMove", &ECORE_X_ATOM_XDND_ACTION_MOVE }, { "XdndActionPrivate", &ECORE_X_ATOM_XDND_ACTION_PRIVATE }, { "XdndActionAsk", &ECORE_X_ATOM_XDND_ACTION_ASK }, { "XdndActionList", &ECORE_X_ATOM_XDND_ACTION_LIST }, { "XdndActionLink", &ECORE_X_ATOM_XDND_ACTION_LINK }, { "XdndActionDescription", &ECORE_X_ATOM_XDND_ACTION_DESCRIPTION }, { "XdndProxy", &ECORE_X_ATOM_XDND_PROXY }, { "XdndStatus", &ECORE_X_ATOM_XDND_STATUS }, { "XdndLeave", &ECORE_X_ATOM_XDND_LEAVE }, { "XdndDrop", &ECORE_X_ATOM_XDND_DROP }, { "XdndFinished", &ECORE_X_ATOM_XDND_FINISHED }, { "XdndActionCopy", &ECORE_X_DND_ACTION_COPY }, { "XdndActionMove", &ECORE_X_DND_ACTION_MOVE }, { "XdndActionLink", &ECORE_X_DND_ACTION_LINK }, { "XdndActionAsk", &ECORE_X_DND_ACTION_ASK }, { "XdndActionPrivate", &ECORE_X_DND_ACTION_PRIVATE }, { "_E_FRAME_SIZE", &ECORE_X_ATOM_E_FRAME_SIZE }, { "_WIN_LAYER", &ECORE_X_ATOM_WIN_LAYER }, { "WM_NAME", &ECORE_X_ATOM_WM_NAME }, { "WM_ICON_NAME", &ECORE_X_ATOM_WM_ICON_NAME }, { "WM_NORMAL_HINTS", &ECORE_X_ATOM_WM_NORMAL_HINTS }, { "WM_SIZE_HINTS", &ECORE_X_ATOM_WM_SIZE_HINTS }, { "WM_HINTS", &ECORE_X_ATOM_WM_HINTS }, { "WM_CLASS", &ECORE_X_ATOM_WM_CLASS }, { "WM_TRANSIENT_FOR", &ECORE_X_ATOM_WM_TRANSIENT_FOR }, { "WM_PROTOCOLS", &ECORE_X_ATOM_WM_PROTOCOLS }, { "WM_COLORMAP_WINDOWS", &ECORE_X_ATOM_WM_COLORMAP_WINDOWS }, { "WM_COMMAND", &ECORE_X_ATOM_WM_COMMAND }, { "WM_CLIENT_MACHINE", &ECORE_X_ATOM_WM_CLIENT_MACHINE }, { "WM_STATE", &ECORE_X_ATOM_WM_STATE }, { "WM_ICON_SIZE", &ECORE_X_ATOM_WM_ICON_SIZE }, { "WM_CHANGE_STATE", &ECORE_X_ATOM_WM_CHANGE_STATE }, { "WM_TAKE_FOCUS", &ECORE_X_ATOM_WM_TAKE_FOCUS }, { "WM_SAVE_YOURSELF", &ECORE_X_ATOM_WM_SAVE_YOURSELF }, { "WM_DELETE_WINDOW", &ECORE_X_ATOM_WM_DELETE_WINDOW }, { "WM_COLORMAP_NOTIFY", &ECORE_X_ATOM_WM_COLORMAP_NOTIFY }, { "SM_CLIENT_ID", &ECORE_X_ATOM_SM_CLIENT_ID }, { "WM_CLIENT_LEADER", &ECORE_X_ATOM_WM_CLIENT_LEADER }, { "WM_WINDOW_ROLE", &ECORE_X_ATOM_WM_WINDOW_ROLE }, { "MOTIF_WM_HINTS", &ECORE_X_ATOM_MOTIF_WM_HINTS }, { "_NET_SUPPORTED", &ECORE_X_ATOM_NET_SUPPORTED }, { "_NET_CLIENT_LIST", &ECORE_X_ATOM_NET_CLIENT_LIST }, { "_NET_CLIENT_LIST_STACKING", &ECORE_X_ATOM_NET_CLIENT_LIST_STACKING }, { "_NET_NUMBER_OF_DESKTOPS", &ECORE_X_ATOM_NET_NUMBER_OF_DESKTOPS }, { "_NET_DESKTOP_GEOMETRY", &ECORE_X_ATOM_NET_DESKTOP_GEOMETRY }, { "_NET_DESKTOP_VIEWPORT", &ECORE_X_ATOM_NET_DESKTOP_VIEWPORT }, { "_NET_CURRENT_DESKTOP", &ECORE_X_ATOM_NET_CURRENT_DESKTOP }, { "_NET_DESKTOP_NAMES", &ECORE_X_ATOM_NET_DESKTOP_NAMES }, { "_NET_ACTIVE_WINDOW", &ECORE_X_ATOM_NET_ACTIVE_WINDOW }, { "_NET_WORKAREA", &ECORE_X_ATOM_NET_WORKAREA }, { "_NET_SUPPORTING_WM_CHECK", &ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK }, { "_NET_VIRTUAL_ROOTS", &ECORE_X_ATOM_NET_VIRTUAL_ROOTS }, { "_NET_DESKTOP_LAYOUT", &ECORE_X_ATOM_NET_DESKTOP_LAYOUT }, { "_NET_SHOWING_DESKTOP", &ECORE_X_ATOM_NET_SHOWING_DESKTOP }, { "_NET_CLOSE_WINDOW", &ECORE_X_ATOM_NET_CLOSE_WINDOW }, { "_NET_MOVERESIZE_WINDOW", &ECORE_X_ATOM_NET_MOVERESIZE_WINDOW }, { "_NET_WM_MOVERESIZE", &ECORE_X_ATOM_NET_WM_MOVERESIZE }, { "_NET_RESTACK_WINDOW", &ECORE_X_ATOM_NET_RESTACK_WINDOW }, { "_NET_REQUEST_FRAME_EXTENTS", &ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS }, { "_NET_WM_NAME", &ECORE_X_ATOM_NET_WM_NAME }, { "_NET_WM_VISIBLE_NAME", &ECORE_X_ATOM_NET_WM_VISIBLE_NAME }, { "_NET_WM_ICON_NAME", &ECORE_X_ATOM_NET_WM_ICON_NAME }, { "_NET_WM_VISIBLE_ICON_NAME", &ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME }, { "_NET_WM_DESKTOP", &ECORE_X_ATOM_NET_WM_DESKTOP }, { "_NET_WM_WINDOW_TYPE", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE }, { "_NET_WM_WINDOW_TYPE_DESKTOP", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP }, { "_NET_WM_WINDOW_TYPE_DOCK", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK }, { "_NET_WM_WINDOW_TYPE_TOOLBAR", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_TOOLBAR }, { "_NET_WM_WINDOW_TYPE_MENU", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_MENU }, { "_NET_WM_WINDOW_TYPE_UTILITY", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_UTILITY }, { "_NET_WM_WINDOW_TYPE_SPLASH", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_SPLASH }, { "_NET_WM_WINDOW_TYPE_DIALOG", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DIALOG }, { "_NET_WM_WINDOW_TYPE_NORMAL", &ECORE_X_ATOM_NET_WM_WINDOW_TYPE_NORMAL }, { "_NET_WM_STATE", &ECORE_X_ATOM_NET_WM_STATE }, { "_NET_WM_STATE_MODAL", &ECORE_X_ATOM_NET_WM_STATE_MODAL }, { "_NET_WM_STATE_STICKY", &ECORE_X_ATOM_NET_WM_STATE_STICKY }, { "_NET_WM_STATE_MAXIMIZED_VERT", &ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_VERT }, { "_NET_WM_STATE_MAXIMIZED_HORZ", &ECORE_X_ATOM_NET_WM_STATE_MAXIMIZED_HORZ }, { "_NET_WM_STATE_SHADED", &ECORE_X_ATOM_NET_WM_STATE_SHADED }, { "_NET_WM_STATE_SKIP_TASKBAR", &ECORE_X_ATOM_NET_WM_STATE_SKIP_TASKBAR }, { "_NET_WM_STATE_SKIP_PAGER", &ECORE_X_ATOM_NET_WM_STATE_SKIP_PAGER }, { "_NET_WM_STATE_HIDDEN", &ECORE_X_ATOM_NET_WM_STATE_HIDDEN }, { "_NET_WM_STATE_FULLSCREEN", &ECORE_X_ATOM_NET_WM_STATE_FULLSCREEN }, { "_NET_WM_STATE_ABOVE", &ECORE_X_ATOM_NET_WM_STATE_ABOVE }, { "_NET_WM_STATE_BELOW", &ECORE_X_ATOM_NET_WM_STATE_BELOW }, { "_NET_WM_STATE_DEMANDS_ATTENTION", &ECORE_X_ATOM_NET_WM_STATE_DEMANDS_ATTENTION }, { "_NET_WM_ALLOWED_ACTIONS", &ECORE_X_ATOM_NET_WM_ALLOWED_ACTIONS }, { "_NET_WM_ACTION_MOVE", &ECORE_X_ATOM_NET_WM_ACTION_MOVE }, { "_NET_WM_ACTION_RESIZE", &ECORE_X_ATOM_NET_WM_ACTION_RESIZE }, { "_NET_WM_ACTION_MINIMIZE", &ECORE_X_ATOM_NET_WM_ACTION_MINIMIZE }, { "_NET_WM_ACTION_SHADE", &ECORE_X_ATOM_NET_WM_ACTION_SHADE }, { "_NET_WM_ACTION_STICK", &ECORE_X_ATOM_NET_WM_ACTION_STICK }, { "_NET_WM_ACTION_MAXIMIZE_HORZ", &ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_HORZ }, { "_NET_WM_ACTION_MAXIMIZE_VERT", &ECORE_X_ATOM_NET_WM_ACTION_MAXIMIZE_VERT }, { "_NET_WM_ACTION_FULLSCREEN", &ECORE_X_ATOM_NET_WM_ACTION_FULLSCREEN }, { "_NET_WM_ACTION_CHANGE_DESKTOP", &ECORE_X_ATOM_NET_WM_ACTION_CHANGE_DESKTOP }, { "_NET_WM_ACTION_CLOSE", &ECORE_X_ATOM_NET_WM_ACTION_CLOSE }, { "_NET_WM_STRUT", &ECORE_X_ATOM_NET_WM_STRUT }, { "_NET_WM_STRUT_PARTIAL", &ECORE_X_ATOM_NET_WM_STRUT_PARTIAL }, { "_NET_WM_ICON_GEOMETRY", &ECORE_X_ATOM_NET_WM_ICON_GEOMETRY }, { "_NET_WM_ICON", &ECORE_X_ATOM_NET_WM_ICON }, { "_NET_WM_PID", &ECORE_X_ATOM_NET_WM_PID }, { "_NET_WM_HANDLED_ICONS", &ECORE_X_ATOM_NET_WM_HANDLED_ICONS }, { "_NET_WM_USER_TIME", &ECORE_X_ATOM_NET_WM_USER_TIME }, { "_NET_STARTUP_ID", &ECORE_X_ATOM_NET_STARTUP_ID }, { "_NET_FRAME_EXTENTS", &ECORE_X_ATOM_NET_FRAME_EXTENTS }, { "_NET_WM_PING", &ECORE_X_ATOM_NET_WM_PING }, { "_NET_WM_SYNC_REQUEST", &ECORE_X_ATOM_NET_WM_SYNC_REQUEST }, { "_NET_WM_SYNC_REQUEST_COUNTER", &ECORE_X_ATOM_NET_WM_SYNC_REQUEST_COUNTER }, { "_NET_WM_WINDOW_OPACITY", &ECORE_X_ATOM_NET_WM_WINDOW_OPACITY }, { "_NET_WM_WINDOW_SHADOW", &ECORE_X_ATOM_NET_WM_WINDOW_SHADOW }, { "_NET_WM_WINDOW_SHADE", &ECORE_X_ATOM_NET_WM_WINDOW_SHADE }, { "TARGETS", &ECORE_X_ATOM_SELECTION_TARGETS }, { "CLIPBOARD", &ECORE_X_ATOM_SELECTION_PRIMARY }, { "PRIMARY", &ECORE_X_ATOM_SELECTION_SECONDARY }, { "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 } }; Atom *atoms; char **names; int i, num; num = sizeof(items) / sizeof(Atom_Item); atoms = alloca(num * sizeof(Atom)); names = alloca(num * sizeof(char *)); for (i = 0; i < num; i++) names[i] = items[i].name; XInternAtoms(_ecore_x_disp, names, num, False, atoms); for (i = 0; i < num; i++) *(items[i].atom) = atoms[i]; }