JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
new stuff
[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 /* atoms */
13 enum { WMState, WMProtocols, WMDelete, WMLast };
14 enum { NetSupported, NetWMName, NetLast };
15
16 /* cursor */
17 enum { CurNormal, CurResize, CurMove, CurInput, CurLast };
18
19 /* rects */
20 enum { RFloat, RGrid, RLast };
21
22 typedef struct Client Client;
23
24 struct Client {
25         char name[256];
26         char tag[256];
27         int proto;
28         unsigned int border;
29         Bool fixedsize;
30         Window win;
31         Window trans;
32         Window title;
33         XSizeHints size;
34         XRectangle r[RLast];
35         Client *next;
36         Client *snext;
37 };
38
39 extern Display *dpy;
40 extern Window root, barwin;
41 extern Atom wm_atom[WMLast], net_atom[NetLast];
42 extern Cursor cursor[CurLast];
43 extern XRectangle rect, barrect;
44 extern Bool running;
45 extern Bool grid;
46 extern void (*handler[LASTEvent]) (XEvent *);
47
48 extern int screen, sel_screen;
49 extern unsigned int lock_mask, numlock_mask;
50 extern char *bartext, tag[256];
51
52 extern Brush brush;
53 extern Client *client;
54
55 /* bar.c */
56 extern void draw_bar();
57
58 /* client.c */
59 extern Client *create_client(Window w, XWindowAttributes *wa);
60 extern void manage(Client *c);
61
62 /* wm.c */
63 extern int win_proto(Window w);