all repos — dwm @ 586f66331d1105be03c42e6faeae1672b974a98a

fork of suckless dynamic window manager

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#define WM_PROTOCOL_DELWIN 1
13
14/* atoms */
15enum { WMProtocols, WMDelete, WMLast };
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 Key Key;
26
27struct Client {
28	char name[256];
29	char tag[256];
30	unsigned int border;
31	int proto;
32	Bool fixedsize;
33	Window win;
34	Window trans;
35	Window title;
36	XSizeHints size;
37	XRectangle r[RLast];
38	Client *next;
39	Client *snext;
40};
41
42struct Key {
43	unsigned long mod;
44	KeySym keysym;
45	void (*func)(void *aux);
46	void *aux;
47};
48
49extern Display *dpy;
50extern Window root, barwin;
51extern Atom wm_atom[WMLast], net_atom[NetLast];
52extern Cursor cursor[CurLast];
53extern XRectangle rect, barrect;
54extern Bool running, sel_screen, grid;
55extern void (*handler[LASTEvent]) (XEvent *);
56
57extern int screen;
58extern char *bartext, tag[256];
59
60extern Brush brush;
61extern Client *clients, *stack;
62
63/* bar.c */
64extern void draw_bar();
65
66/* cmd.c */
67extern void run(void *aux);
68extern void quit(void *aux);
69extern void kill(void *aux);
70
71/* client.c */
72extern void manage(Window w, XWindowAttributes *wa);
73extern void unmanage(Client *c);
74extern Client *getclient(Window w);
75extern void focus(Client *c);
76extern void update_name(Client *c);
77
78/* event.c */
79extern unsigned int flush_events(long even_mask);
80
81/* key.c */
82extern void update_keys();
83extern void keypress(XEvent *e);
84
85/* wm.c */
86extern int error_handler(Display *dpy, XErrorEvent *error);
87extern void send_message(Window w, Atom a, long value);
88extern int win_proto(Window w);