7 #include "draw.h" |
7 #include "draw.h" |
8 #include "util.h" |
8 #include "util.h" |
9 |
9 |
10 #include <X11/Xutil.h> |
10 #include <X11/Xutil.h> |
11 |
11 |
12 /* WM atoms */ |
12 /* atoms */ |
13 enum { WMState, WMProtocols, WMDelete, WMLast }; |
13 enum { WMState, WMProtocols, WMDelete, WMLast }; |
14 |
|
15 /* NET atoms */ |
|
16 enum { NetSupported, NetWMName, NetLast }; |
14 enum { NetSupported, NetWMName, NetLast }; |
17 |
15 |
18 /* Cursor */ |
16 /* cursor */ |
19 enum { CurNormal, CurResize, CurMove, CurInput, CurLast }; |
17 enum { CurNormal, CurResize, CurMove, CurInput, CurLast }; |
20 |
18 |
21 /* Rects */ |
19 /* rects */ |
22 enum { RFloat, RGrid, RLast }; |
20 enum { RFloat, RGrid, RLast }; |
23 |
21 |
24 typedef struct Client Client; |
22 typedef struct Client Client; |
25 typedef struct Tag Tag; |
23 typedef struct Tag Tag; |
26 |
24 |
27 struct Client { |
25 struct Client { |
28 Tag *tag; |
26 Tag *tag; |
29 char name[256]; |
27 char name[256]; |
30 int proto; |
28 int proto; |
|
29 unsigned int border; |
|
30 Bool fixedsize; |
31 Window win; |
31 Window win; |
32 Window trans; |
32 Window trans; |
33 Window title; |
33 Window title; |
34 GC gc; |
|
35 XSizeHints size; |
34 XSizeHints size; |
36 XRectangle r[RLast]; |
35 XRectangle r[RLast]; |
37 Client *next; |
36 Client *next; |
38 Client *tnext; |
37 Client *snext; |
39 Client *tprev; |
|
40 }; |
38 }; |
41 |
39 |
42 struct Tag { |
40 struct Tag { |
43 char name[256]; |
41 char name[256]; |
44 Client *clients; |
42 Client *stack; |
45 Client *sel; |
|
46 XRectangle r; |
43 XRectangle r; |
|
44 Tag *next; |
|
45 Tag *cnext; |
47 }; |
46 }; |
48 |
47 |
49 extern Display *dpy; |
48 extern Display *dpy; |
50 extern Window root; |
49 extern Window root, barwin; |
51 extern XRectangle rect; |
50 extern Atom wm_atom[WMLast], net_atom[NetLast]; |
52 extern Atom wm_atom[WMLast]; |
|
53 extern Atom net_atom[NetLast]; |
|
54 extern Cursor cursor[CurLast]; |
51 extern Cursor cursor[CurLast]; |
55 extern Pixmap pmap; |
52 extern XRectangle rect, barrect; |
|
53 extern Bool running; |
|
54 extern void (*handler[LASTEvent]) (XEvent *); |
56 |
55 |
57 extern int screen, sel_screen; |
56 extern int screen, sel_screen; |
58 extern unsigned int kmask, numlock_mask; |
57 extern unsigned int lock_mask, numlock_mask; |
|
58 extern char *bartext, *shell; |
59 |
59 |
60 extern Brush brush; |
60 extern Brush brush; |
61 |
61 |
|
62 /* bar.c */ |
|
63 extern void draw_bar(); |
|
64 |
|
65 /* client.c */ |
|
66 extern Client *create_client(Window w, XWindowAttributes *wa); |
|
67 extern void manage(Client *c); |
|
68 |
62 /* wm.c */ |
69 /* wm.c */ |
|
70 extern int win_proto(Window w); |