|
|
- /* See LICENSE file for copyright and license details. */
- #include <X11/Xlib.h>
-
- /* enums */
- enum { BarTop, BarBot, BarOff }; /* bar position */
- enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
- enum { ColBorder, ColFG, ColBG, ColLast }; /* color */
- enum { NetSupported, NetWMName, NetLast }; /* EWMH atoms */
- enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */
-
- /* typedefs */
- typedef struct Client Client;
- struct Client {
- char name[256];
- int x, y, w, h;
- int rx, ry, rw, rh; /* revert geometry */
- int basew, baseh, incw, inch, maxw, maxh, minw, minh;
- int minax, maxax, minay, maxay;
- long flags;
- unsigned int border, oldborder;
- Bool isbanned, isfixed, ismax, isfloating, wasfloating;
- Bool *tags;
- Client *next;
- Client *prev;
- Client *snext;
- Window win;
- };
-
- typedef struct {
- int x, y, w, h;
- unsigned long norm[ColLast];
- unsigned long sel[ColLast];
- Drawable drawable;
- GC gc;
- struct {
- int ascent;
- int descent;
- int height;
- XFontSet set;
- XFontStruct *xfont;
- } font;
- } DC; /* draw context */
-
- typedef struct {
- unsigned long mod;
- KeySym keysym;
- void (*func)(const char *arg);
- const char *arg;
- } Key;
-
- typedef struct {
- const char *symbol;
- void (*arrange)(void);
- } Layout;
-
- /* functions */
- void applyrules(Client *c);
- void arrange(void);
- void attach(Client *c);
- void attachstack(Client *c);
- void ban(Client *c);
- void buttonpress(XEvent *e);
- void checkotherwm(void);
- void cleanup(void);
- void compileregs(void);
- void configure(Client *c);
- void configurenotify(XEvent *e);
- void configurerequest(XEvent *e);
- void destroynotify(XEvent *e);
- void detach(Client *c);
- void detachstack(Client *c);
- void drawbar(void);
- void drawsquare(Bool filled, Bool empty, unsigned long col[ColLast]);
- void drawtext(const char *text, unsigned long col[ColLast]);
- void *emallocz(unsigned int size);
- void enternotify(XEvent *e);
- void eprint(const char *errstr, ...);
- void expose(XEvent *e);
- void floating(void); /* default floating layout */
- void focus(Client *c);
- void focusnext(const char *arg);
- void focusprev(const char *arg);
- Client *getclient(Window w);
- unsigned long getcolor(const char *colstr);
- long getstate(Window w);
- Bool gettextprop(Window w, Atom atom, char *text, unsigned int size);
- void grabbuttons(Client *c, Bool focused);
- unsigned int idxoftag(const char *tag);
- void initfont(const char *fontstr);
- Bool isarrange(void (*func)());
- Bool isoccupied(unsigned int t);
- Bool isprotodel(Client *c);
- Bool isvisible(Client *c);
- void keypress(XEvent *e);
- void killclient(const char *arg);
- void leavenotify(XEvent *e);
- void manage(Window w, XWindowAttributes *wa);
- void mappingnotify(XEvent *e);
- void maprequest(XEvent *e);
- void movemouse(Client *c);
- Client *nexttiled(Client *c);
- void propertynotify(XEvent *e);
- void quit(const char *arg);
- void resize(Client *c, int x, int y, int w, int h, Bool sizehints);
- void resizemouse(Client *c);
- void restack(void);
- void run(void);
- void scan(void);
- void setclientstate(Client *c, long state);
- void setlayout(const char *arg);
- void setmwfact(const char *arg);
- void setup(void);
- void spawn(const char *arg);
- void tag(const char *arg);
- unsigned int textnw(const char *text, unsigned int len);
- unsigned int textw(const char *text);
- void tile(void);
- void togglebar(const char *arg);
- void togglefloating(const char *arg);
- void togglemax(const char *arg);
- void toggletag(const char *arg);
- void toggleview(const char *arg);
- void unban(Client *c);
- void unmanage(Client *c);
- void unmapnotify(XEvent *e);
- void updatebarpos(void);
- void updatesizehints(Client *c);
- void updatetitle(Client *c);
- void view(const char *arg);
- void viewprevtag(const char *arg); /* views previous selected tags */
- int xerror(Display *dpy, XErrorEvent *ee);
- int xerrordummy(Display *dsply, XErrorEvent *ee);
- int xerrorstart(Display *dsply, XErrorEvent *ee);
- void zoom(const char *arg);
|