dwm-meillo

annotate dwm.h @ 384:126e78129f1d

configurenotify remembers max geom now, and restores this if necessary, however it accepts to touch the max size on configurerequest, this shouldn't break fillscreen apps (tested with mplayer)
author Anselm R. Garbe <arg@10kloc.org>
date Tue, 29 Aug 2006 17:31:55 +0200
parents 83576f5f0a90
children 7528080beb0e
rev   line source
garbeam@0 1 /*
garbeam@0 2 * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
garbeam@0 3 * See LICENSE file for license details.
garbeam@0 4 */
garbeam@0 5
arg@166 6 #include "config.h"
garbeam@32 7 #include <X11/Xlib.h>
garbeam@32 8
arg@143 9 /* mask shorthands, used in event.c and client.c */
arg@150 10 #define BUTTONMASK (ButtonPressMask | ButtonReleaseMask)
arg@150 11 #define MOUSEMASK (BUTTONMASK | PointerMotionMask)
arg@157 12 #define PROTODELWIN 1
arg@143 13
arg@333 14 typedef union {
arg@189 15 const char *cmd;
garbeam@49 16 int i;
arg@333 17 } Arg;
garbeam@18 18
garbeam@5 19 /* atoms */
arg@230 20 enum { NetSupported, NetWMName, NetLast };
garbeam@13 21 enum { WMProtocols, WMDelete, WMLast };
garbeam@0 22
garbeam@5 23 /* cursor */
garbeam@84 24 enum { CurNormal, CurResize, CurMove, CurLast };
garbeam@0 25
arg@353 26 /* color */
arg@353 27 enum { ColFG, ColBG, ColLast };
arg@353 28
arg@333 29 /* window corners */
arg@143 30 typedef enum { TopLeft, TopRight, BotLeft, BotRight } Corner;
arg@99 31
arg@333 32 typedef struct {
garbeam@32 33 int ascent;
garbeam@32 34 int descent;
garbeam@32 35 int height;
garbeam@84 36 XFontSet set;
garbeam@84 37 XFontStruct *xfont;
arg@333 38 } Fnt;
garbeam@32 39
arg@333 40 typedef struct { /* draw context */
garbeam@32 41 int x, y, w, h;
arg@353 42 unsigned long norm[ColLast];
arg@353 43 unsigned long sel[ColLast];
arg@353 44 unsigned long status[ColLast];
garbeam@84 45 Drawable drawable;
garbeam@84 46 Fnt font;
garbeam@84 47 GC gc;
arg@333 48 } DC;
garbeam@32 49
arg@333 50 typedef struct Client Client;
garbeam@0 51 struct Client {
garbeam@31 52 char name[256];
garbeam@13 53 int proto;
arg@115 54 int x, y, w, h;
arg@115 55 int tx, ty, tw, th; /* title */
garbeam@20 56 int basew, baseh, incw, inch, maxw, maxh, minw, minh;
garbeam@29 57 int grav;
arg@164 58 long flags;
arg@381 59 unsigned int border, weight;
garbeam@80 60 Bool isfloat;
arg@124 61 Bool ismax;
arg@178 62 Bool *tags;
garbeam@84 63 Client *next;
arg@127 64 Client *prev;
garbeam@0 65 Window win;
arg@342 66 Window twin;
garbeam@0 67 };
garbeam@0 68
arg@178 69 extern const char *tags[];
arg@173 70 extern char stext[1024];
arg@362 71 extern int bx, by, bw, bh, bmw, mw, screen, sx, sy, sw, sh;
arg@362 72 extern unsigned int ntags, numlockmask;
garbeam@53 73 extern void (*handler[LASTEvent])(XEvent *);
garbeam@53 74 extern void (*arrange)(Arg *);
garbeam@84 75 extern Atom wmatom[WMLast], netatom[NetLast];
arg@262 76 extern Bool running, issel, *seltag;
garbeam@84 77 extern Client *clients, *sel;
garbeam@84 78 extern Cursor cursor[CurLast];
garbeam@84 79 extern DC dc;
garbeam@84 80 extern Display *dpy;
garbeam@84 81 extern Window root, barwin;
garbeam@3 82
garbeam@5 83 /* client.c */
garbeam@75 84 extern void ban(Client *c);
garbeam@76 85 extern void focus(Client *c);
garbeam@76 86 extern Client *getclient(Window w);
garbeam@76 87 extern Client *getctitle(Window w);
garbeam@76 88 extern void gravitate(Client *c, Bool invert);
garbeam@76 89 extern void killclient(Arg *arg);
garbeam@10 90 extern void manage(Window w, XWindowAttributes *wa);
arg@129 91 extern void resize(Client *c, Bool sizehints, Corner sticky);
garbeam@74 92 extern void setsize(Client *c);
garbeam@76 93 extern void settitle(Client *c);
arg@124 94 extern void togglemax(Arg *arg);
garbeam@76 95 extern void unmanage(Client *c);
garbeam@13 96
garbeam@33 97 /* draw.c */
garbeam@75 98 extern void drawall();
garbeam@74 99 extern void drawstatus();
garbeam@74 100 extern void drawtitle(Client *c);
garbeam@74 101 extern unsigned long getcolor(const char *colstr);
garbeam@74 102 extern void setfont(const char *fontstr);
arg@173 103 extern unsigned int textw(const char *text);
garbeam@33 104
garbeam@75 105 /* event.c */
garbeam@73 106 extern void grabkeys();
arg@292 107 extern void procevent();
garbeam@18 108
garbeam@43 109 /* main.c */
garbeam@76 110 extern int getproto(Window w);
garbeam@75 111 extern void quit(Arg *arg);
garbeam@76 112 extern void sendevent(Window w, Atom a, long value);
garbeam@75 113 extern int xerror(Display *dsply, XErrorEvent *ee);
garbeam@43 114
garbeam@75 115 /* tag.c */
arg@191 116 extern void initrregs();
arg@142 117 extern Client *getnext(Client *c);
arg@127 118 extern Client *getprev(Client *c);
garbeam@76 119 extern void settags(Client *c);
arg@284 120 extern void tag(Arg *arg);
arg@284 121 extern void toggletag(Arg *arg);
garbeam@73 122
garbeam@32 123 /* util.c */
garbeam@76 124 extern void *emallocz(unsigned int size);
garbeam@75 125 extern void eprint(const char *errstr, ...);
arg@270 126 extern void *erealloc(void *ptr, unsigned int size);
garbeam@49 127 extern void spawn(Arg *arg);
arg@327 128
arg@327 129 /* view.c */
arg@378 130 extern void detach(Client *c);
arg@327 131 extern void dofloat(Arg *arg);
arg@327 132 extern void dotile(Arg *arg);
arg@327 133 extern void focusnext(Arg *arg);
arg@327 134 extern void focusprev(Arg *arg);
arg@327 135 extern Bool isvisible(Client *c);
arg@327 136 extern void restack();
arg@327 137 extern void togglemode(Arg *arg);
arg@327 138 extern void toggleview(Arg *arg);
arg@327 139 extern void view(Arg *arg);
arg@327 140 extern void zoom(Arg *arg);