wm.h (view raw)
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 */
13enum { WMState, WMProtocols, WMDelete, WMLast };
14
15/* NET atoms */
16enum { NetSupported, NetWMName, NetLast };
17
18/* Cursor */
19enum { CurNormal, CurResize, CurMove, CurInput, CurLast };
20
21/* Rects */
22enum { RFloat, RGrid, RLast };
23
24typedef struct Client Client;
25typedef struct Tag Tag;
26
27struct 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
42struct Tag {
43 char name[256];
44 Client *clients;
45 Client *sel;
46 XRectangle r;
47};
48
49extern Display *dpy;
50extern Window root;
51extern XRectangle rect;
52extern Atom wm_atom[WMLast];
53extern Atom net_atom[NetLast];
54extern Cursor cursor[CurLast];
55extern Pixmap pmap;
56
57extern int screen, sel_screen;
58extern unsigned int kmask, numlock_mask;
59
60extern Brush brush;
61
62/* wm.c */