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