JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
3885cb52ca80cdfa314bbd7760e39d7f4237a19d
[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 <X11/Xlib.h>
7 #include <X11/Xutil.h>
8
9 /* WM atoms */
10 enum { WMState, WMProtocols, WMDelete, WMLast };
11
12 /* NET atoms */
13 enum { NetSupported, NetWMName, NetLast };
14
15 /* Cursor */
16 enum { CurNormal, CurResize, CurMove, CurInput, CurLast };
17
18 /* Rects */
19 enum { RFloat, RGrid, RLast };
20
21 typedef struct Client Client;
22 typedef struct Tag Tag;
23
24 struct Client {
25         Tag *tag;
26         char name[256];
27         int proto;
28         Window win;
29         Window trans;
30         Window title;
31         GC gc;
32         XSizeHints size;
33         XRectangle r[RLast];
34         Client *next;
35         Client *tnext;
36         Client *tprev;
37 };
38
39 struct Tag {
40         char name[256];
41         Client *clients;
42         Client *sel;
43         XRectangle r;
44 };
45
46 extern Display *dpy;
47 extern Window root;
48 extern XRectangle rect;
49 extern int screen, sel_screen;
50 extern unsigned int kmask, numlock_mask;
51 extern Atom wm_atom[WMLast];
52 extern Atom net_atom[NetLast];
53 extern Cursor cursor[CurLast];
54 extern Pixmap pmap;
55
56 /* wm.c */
57 extern void error(char *errstr, ...);