#define WM_PROTOCOL_DELWIN 1
+typedef struct Client Client;
+typedef struct Key Key;
+typedef enum Align Align;
+
+enum Align {
+ NORTH = 0x01,
+ EAST = 0x02,
+ SOUTH = 0x04,
+ WEST = 0x08,
+ NEAST = NORTH | EAST,
+ NWEST = NORTH | WEST,
+ SEAST = SOUTH | EAST,
+ SWEST = SOUTH | WEST,
+ CENTER = NEAST | SWEST
+};
+
/* atoms */
enum { WMProtocols, WMDelete, WMLast };
enum { NetSupported, NetWMName, NetLast };
/* rects */
enum { RFloat, RGrid, RLast };
-typedef struct Client Client;
-typedef struct Key Key;
-
struct Client {
char name[256];
char tag[256];
struct Key {
unsigned long mod;
KeySym keysym;
- void (*func)(char *arg);
- char *arg;
+ void (*func)(void *aux);
+ void *aux;
};
extern Display *dpy;
extern void (*handler[LASTEvent]) (XEvent *);
extern int screen;
-extern char *bartext, tag[256];
+extern char statustext[1024], tag[256];
extern Brush brush;
extern Client *clients, *stack;
extern void draw_bar();
/* cmd.c */
-extern void run(char *arg);
-extern void quit(char *arg);
+extern void run(void *aux);
+extern void quit(void *aux);
+extern void kill(void *aux);
/* client.c */
extern void manage(Window w, XWindowAttributes *wa);
extern Client *getclient(Window w);
extern void focus(Client *c);
extern void update_name(Client *c);
+extern void draw_client(Client *c);
+extern void resize(Client *c);
/* event.c */
-extern unsigned int flush_events(long even_mask);
+extern unsigned int discard_events(long even_mask);
/* key.c */
extern void update_keys();
extern void keypress(XEvent *e);
+/* mouse.c */
+extern void mresize(Client *c);
+extern void mmove(Client *c);
+
/* wm.c */
extern int error_handler(Display *dpy, XErrorEvent *error);
extern void send_message(Window w, Atom a, long value);