X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=wm.h;h=7ee6103d16ba9b04ae0e56867ca88bf762706dfd;hb=b9da4b082eb658b4142b61c149212f414f7653b6;hp=b9ba8f787c09d008b4cd2595343ca0c2fee17fa5;hpb=33996500763b04119a6867dfa4040a4236c21a41;p=dwm.git diff --git a/wm.h b/wm.h index b9ba8f7..7ee6103 100644 --- a/wm.h +++ b/wm.h @@ -11,6 +11,22 @@ #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 }; @@ -21,9 +37,6 @@ enum { CurNormal, CurResize, CurMove, CurInput, CurLast }; /* rects */ enum { RFloat, RGrid, RLast }; -typedef struct Client Client; -typedef struct Key Key; - struct Client { char name[256]; char tag[256]; @@ -42,8 +55,8 @@ struct Client { struct Key { unsigned long mod; KeySym keysym; - void (*func)(char *arg); - char *arg; + void (*func)(void *aux); + void *aux; }; extern Display *dpy; @@ -55,7 +68,7 @@ extern Bool running, sel_screen, grid; 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; @@ -64,8 +77,9 @@ 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); @@ -73,14 +87,20 @@ extern void unmanage(Client *c); 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);