JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
several new changes, made gridmenu working
[dwm.git] / wm.h
1 /*
2  * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
3  * See LICENSE file for license details.
4  */
5
6 #include "config.h"
7 #include "draw.h"
8 #include "util.h"
9
10 #include <X11/Xutil.h>
11
12 /* WM atoms */
13 enum { WMState, WMProtocols, WMDelete, WMLast };
14
15 /* NET atoms */
16 enum { NetSupported, NetWMName, NetLast };
17
18 /* Cursor */
19 enum { CurNormal, CurResize, CurMove, CurInput, CurLast };
20
21 /* Rects */
22 enum { RFloat, RGrid, RLast };
23
24 typedef struct Client Client;
25 typedef struct Tag Tag;
26
27 struct Client {
28         Tag *tag;
29         char name[256];
30         int proto;
31         Window win;
32         Window trans;
33         Window title;
34         GC gc;
35         XSizeHints size;
36         XRectangle r[RLast];
37         Client *next;
38         Client *tnext;
39         Client *tprev;
40 };
41
42 struct Tag {
43         char name[256];
44         Client *clients;
45         Client *sel;
46         XRectangle r;
47 };
48
49 extern Display *dpy;
50 extern Window root;
51 extern XRectangle rect;
52 extern Atom wm_atom[WMLast];
53 extern Atom net_atom[NetLast];
54 extern Cursor cursor[CurLast];
55 extern Pixmap pmap;
56
57 extern int screen, sel_screen;
58 extern unsigned int kmask, numlock_mask;
59
60 extern Brush brush;
61
62 /* wm.c */