shod

mouse-based window manager that can tile windows inside floating containers
Log | Files | Refs | README | LICENSE

xutil.h (2562B)


      1 #include <X11/Xlib.h>
      2 #include <X11/Xatom.h>
      3 #include <X11/Xproto.h>
      4 #include <X11/Xresource.h>
      5 #include <X11/Xutil.h>
      6 #include <X11/cursorfont.h>
      7 #include <X11/xpm.h>
      8 #include <X11/Xft/Xft.h>
      9 
     10 /* atom names */
     11 #define ATOMS \
     12 	X(UTF8_STRING) \
     13 	X(WM_DELETE_WINDOW) \
     14 	X(WM_WINDOW_ROLE) \
     15 	X(WM_TAKE_FOCUS) \
     16 	X(WM_PROTOCOLS) \
     17 	X(WM_STATE) \
     18 	X(WM_CLIENT_LEADER) \
     19 	X(_NET_ACTIVE_WINDOW) \
     20 	X(_NET_CLIENT_LIST) \
     21 	X(_NET_CLIENT_LIST_STACKING) \
     22 	X(_NET_CLOSE_WINDOW) \
     23 	X(_NET_CURRENT_DESKTOP) \
     24 	X(_NET_DESKTOP_NAMES) \
     25 	X(_NET_FRAME_EXTENTS) \
     26 	X(_NET_MOVERESIZE_WINDOW) \
     27 	X(_NET_NUMBER_OF_DESKTOPS) \
     28 	X(_NET_REQUEST_FRAME_EXTENTS) \
     29 	X(_NET_SHOWING_DESKTOP) \
     30 	X(_NET_SUPPORTED) \
     31 	X(_NET_SUPPORTING_WM_CHECK) \
     32 	X(_NET_WM_DESKTOP) \
     33 	X(_NET_WM_FULL_PLACEMENT) \
     34 	X(_NET_WM_MOVERESIZE) \
     35 	X(_NET_WM_NAME) \
     36 	X(_NET_WM_STATE) \
     37 	X(_NET_WM_STATE_ABOVE) \
     38 	X(_NET_WM_STATE_BELOW) \
     39 	X(_NET_WM_STATE_DEMANDS_ATTENTION) \
     40 	X(_NET_WM_STATE_FOCUSED) \
     41 	X(_NET_WM_STATE_FULLSCREEN) \
     42 	X(_NET_WM_STATE_HIDDEN) \
     43 	X(_NET_WM_STATE_MAXIMIZED_HORZ) \
     44 	X(_NET_WM_STATE_MAXIMIZED_VERT) \
     45 	X(_NET_WM_STATE_SHADED) \
     46 	X(_NET_WM_STATE_STICKY) \
     47 	X(_NET_WM_STRUT) \
     48 	X(_NET_WM_STRUT_PARTIAL) \
     49 	X(_NET_WM_WINDOW_TYPE) \
     50 	X(_NET_WM_WINDOW_TYPE_DESKTOP) \
     51 	X(_NET_WM_WINDOW_TYPE_DIALOG) \
     52 	X(_NET_WM_WINDOW_TYPE_DOCK) \
     53 	X(_NET_WM_WINDOW_TYPE_MENU) \
     54 	X(_NET_WM_WINDOW_TYPE_NOTIFICATION) \
     55 	X(_NET_WM_WINDOW_TYPE_PROMPT) \
     56 	X(_NET_WM_WINDOW_TYPE_SPLASH) \
     57 	X(_NET_WM_WINDOW_TYPE_TOOLBAR) \
     58 	X(_NET_WM_WINDOW_TYPE_UTILITY) \
     59 	X(_MOTIF_WM_HINTS) \
     60 	X(_GNUSTEP_WM_ATTR) \
     61 	X(_SHOD_WM_STATE_STRETCHED) \
     62 	X(_SHOD_CYCLE) \
     63 	X(_SHOD_GROUP_TAB) \
     64 	X(_SHOD_GROUP_CONTAINER) \
     65 	X(_SHOD_CONTAINER_LIST)
     66 
     67 enum Atom {
     68 #define X(atom) atom,
     69 	ATOMS
     70 	NATOMS
     71 #undef  X
     72 };
     73 
     74 extern Visual *visual;
     75 extern Colormap colormap;
     76 extern unsigned int depth;
     77 extern XrmDatabase xdb;
     78 extern Display *dpy;
     79 extern Window root;
     80 extern Atom atoms[NATOMS];
     81 extern int screen;
     82 
     83 int max(int x, int y);
     84 int min(int x, int y);
     85 void *ecalloc(size_t nmemb, size_t size);
     86 void *emalloc(size_t size);
     87 char *estrndup(const char *s, size_t maxlen);
     88 
     89 unsigned long getwinsprop(Window win, Atom prop, Window **wins);
     90 unsigned long getcardsprop(Window win, Atom prop, unsigned long **array);
     91 unsigned long getcardprop(Window win, Atom prop);
     92 unsigned long getatomsprop(Window win, Atom prop, Atom **atoms);
     93 Window getwinprop(Window win, Atom prop);
     94 Atom getatomprop(Window win, Atom prop);
     95 void initatoms(void);
     96 void xinit(void);
     97 void xinitvisual(void);
     98 char *getresource(XrmDatabase xdb, XrmClass *class, XrmName *name);