JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
added mouse-based resizals
[dwm.git] / wm.h
diff --git a/wm.h b/wm.h
index c4d65ea..7ee6103 100644 (file)
--- a/wm.h
+++ b/wm.h
@@ -9,8 +9,26 @@
 
 #include <X11/Xutil.h>
 
+#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 { WMState, WMProtocols, WMDelete, WMLast };
+enum { WMProtocols, WMDelete, WMLast };
 enum { NetSupported, NetWMName, NetLast };
 
 /* cursor */
@@ -19,14 +37,11 @@ enum { CurNormal, CurResize, CurMove, CurInput, CurLast };
 /* rects */
 enum { RFloat, RGrid, RLast };
 
-typedef struct Client Client;
-typedef struct Tag Tag;
-
 struct Client {
-       Tag *tag;
        char name[256];
-       int proto;
+       char tag[256];
        unsigned int border;
+       int proto;
        Bool fixedsize;
        Window win;
        Window trans;
@@ -37,12 +52,11 @@ struct Client {
        Client *snext;
 };
 
-struct Tag {
-       char name[256];
-       Client *stack;
-       XRectangle r;
-       Tag *next;
-       Tag *cnext;
+struct Key {
+       unsigned long mod;
+       KeySym keysym;
+       void (*func)(void *aux);
+       void *aux;
 };
 
 extern Display *dpy;
@@ -50,21 +64,44 @@ extern Window root, barwin;
 extern Atom wm_atom[WMLast], net_atom[NetLast];
 extern Cursor cursor[CurLast];
 extern XRectangle rect, barrect;
-extern Bool running;
+extern Bool running, sel_screen, grid;
 extern void (*handler[LASTEvent]) (XEvent *);
 
-extern int screen, sel_screen;
-extern unsigned int lock_mask, numlock_mask;
-extern char *bartext;
+extern int screen;
+extern char statustext[1024], tag[256];
 
 extern Brush brush;
+extern Client *clients, *stack;
 
 /* bar.c */
 extern void draw_bar();
 
+/* cmd.c */
+extern void run(void *aux);
+extern void quit(void *aux);
+extern void kill(void *aux);
+
 /* client.c */
-extern Client *create_client(Window w, XWindowAttributes *wa);
-extern void manage(Client *c);
+extern void manage(Window w, XWindowAttributes *wa);
+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 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);
 extern int win_proto(Window w);