9 |
9 |
10 #include <X11/Xutil.h> |
10 #include <X11/Xutil.h> |
11 |
11 |
12 #define WM_PROTOCOL_DELWIN 1 |
12 #define WM_PROTOCOL_DELWIN 1 |
13 |
13 |
|
14 typedef struct Client Client; |
|
15 typedef struct Key Key; |
|
16 typedef enum Align Align; |
|
17 |
|
18 enum Align { |
|
19 NORTH = 0x01, |
|
20 EAST = 0x02, |
|
21 SOUTH = 0x04, |
|
22 WEST = 0x08, |
|
23 NEAST = NORTH | EAST, |
|
24 NWEST = NORTH | WEST, |
|
25 SEAST = SOUTH | EAST, |
|
26 SWEST = SOUTH | WEST, |
|
27 CENTER = NEAST | SWEST |
|
28 }; |
|
29 |
14 /* atoms */ |
30 /* atoms */ |
15 enum { WMProtocols, WMDelete, WMLast }; |
31 enum { WMProtocols, WMDelete, WMLast }; |
16 enum { NetSupported, NetWMName, NetLast }; |
32 enum { NetSupported, NetWMName, NetLast }; |
17 |
33 |
18 /* cursor */ |
34 /* cursor */ |
19 enum { CurNormal, CurResize, CurMove, CurInput, CurLast }; |
35 enum { CurNormal, CurResize, CurMove, CurInput, CurLast }; |
20 |
36 |
21 /* rects */ |
37 /* rects */ |
22 enum { RFloat, RGrid, RLast }; |
38 enum { RFloat, RGrid, RLast }; |
23 |
|
24 typedef struct Client Client; |
|
25 typedef struct Key Key; |
|
26 |
39 |
27 struct Client { |
40 struct Client { |
28 char name[256]; |
41 char name[256]; |
29 char tag[256]; |
42 char tag[256]; |
30 unsigned int border; |
43 unsigned int border; |
73 extern void unmanage(Client *c); |
86 extern void unmanage(Client *c); |
74 extern Client *getclient(Window w); |
87 extern Client *getclient(Window w); |
75 extern void focus(Client *c); |
88 extern void focus(Client *c); |
76 extern void update_name(Client *c); |
89 extern void update_name(Client *c); |
77 extern void draw_client(Client *c); |
90 extern void draw_client(Client *c); |
|
91 extern void resize(Client *c); |
78 |
92 |
79 /* event.c */ |
93 /* event.c */ |
80 extern unsigned int flush_events(long even_mask); |
94 extern unsigned int discard_events(long even_mask); |
81 |
95 |
82 /* key.c */ |
96 /* key.c */ |
83 extern void update_keys(); |
97 extern void update_keys(); |
84 extern void keypress(XEvent *e); |
98 extern void keypress(XEvent *e); |
85 |
99 |
|
100 /* mouse.c */ |
|
101 extern void mresize(Client *c); |
|
102 extern void mmove(Client *c); |
|
103 |
86 /* wm.c */ |
104 /* wm.c */ |
87 extern int error_handler(Display *dpy, XErrorEvent *error); |
105 extern int error_handler(Display *dpy, XErrorEvent *error); |
88 extern void send_message(Window w, Atom a, long value); |
106 extern void send_message(Window w, Atom a, long value); |
89 extern int win_proto(Window w); |
107 extern int win_proto(Window w); |