dwm.h
changeset 878 d2ae55f83f9f
parent 875 73cd10af065a
child 895 b461240ba625
equal deleted inserted replaced
877:29c4a4d1214c 878:d2ae55f83f9f
    35 #include <X11/Xlib.h>
    35 #include <X11/Xlib.h>
    36 
    36 
    37 /* mask shorthands, used in event.c and client.c */
    37 /* mask shorthands, used in event.c and client.c */
    38 #define BUTTONMASK		(ButtonPressMask | ButtonReleaseMask)
    38 #define BUTTONMASK		(ButtonPressMask | ButtonReleaseMask)
    39 
    39 
       
    40 enum { BarTop, BarBot, BarOff };			/* bar position */
       
    41 enum { CurNormal, CurResize, CurMove, CurLast };	/* cursor */
       
    42 enum { ColBorder, ColFG, ColBG, ColLast };		/* color */
    40 enum { NetSupported, NetWMName, NetLast };		/* EWMH atoms */
    43 enum { NetSupported, NetWMName, NetLast };		/* EWMH atoms */
    41 enum { WMProtocols, WMDelete, WMState, WMLast };	/* default atoms */
    44 enum { WMProtocols, WMDelete, WMState, WMLast };	/* default atoms */
    42 enum { CurNormal, CurResize, CurMove, CurLast };	/* cursor */
       
    43 enum { ColBorder, ColFG, ColBG, ColLast };		/* color */
       
    44 
    45 
    45 typedef struct Client Client;
    46 typedef struct Client Client;
    46 struct Client {
    47 struct Client {
    47 	char name[256];
    48 	char name[256];
    48 	int x, y, w, h;
    49 	int x, y, w, h;
    81 
    82 
    82 extern const char *tags[];		/* all tags */
    83 extern const char *tags[];		/* all tags */
    83 char stext[256];			/* status text */
    84 char stext[256];			/* status text */
    84 int screen, sx, sy, sw, sh;		/* screen geometry */
    85 int screen, sx, sy, sw, sh;		/* screen geometry */
    85 int wax, way, wah, waw;			/* windowarea geometry */
    86 int wax, way, wah, waw;			/* windowarea geometry */
    86 unsigned int bh, blw;			/* bar height, bar layout label width */
    87 unsigned int bh, blw, bpos;		/* bar height, bar layout label width, bar position */
    87 unsigned int ntags, numlockmask;	/* number of tags, dynamic lock mask */
    88 unsigned int ntags, numlockmask;	/* number of tags, dynamic lock mask */
    88 void (*handler[LASTEvent])(XEvent *);	/* event handler */
    89 void (*handler[LASTEvent])(XEvent *);	/* event handler */
    89 Atom wmatom[WMLast], netatom[NetLast];
    90 Atom wmatom[WMLast], netatom[NetLast];
    90 Bool selscreen, *seltag;		/* seltag is array of Bool */
    91 Bool selscreen, *seltag;		/* seltag is array of Bool */
    91 Client *clients, *sel, *stack;		/* global client list and stack */
    92 Client *clients, *sel, *stack;		/* global client list and stack */
    98 /* client.c */
    99 /* client.c */
    99 void attach(Client *c);			/* attaches c to global client list */
   100 void attach(Client *c);			/* attaches c to global client list */
   100 void configure(Client *c);		/* send synthetic configure event */
   101 void configure(Client *c);		/* send synthetic configure event */
   101 void detach(Client *c);			/* detaches c from global client list */
   102 void detach(Client *c);			/* detaches c from global client list */
   102 void focus(Client *c);			/* focus c, c may be NULL */
   103 void focus(Client *c);			/* focus c, c may be NULL */
   103 void focustopvisible(void);	    /* focus top visible window on stack */
   104 void focustopvisible(void);		/* focus top visible window on stack */
   104 void killclient(const char *arg);		/* kill sel  nicely */
   105 void killclient(const char *arg);	/* kill sel  nicely */
   105 void manage(Window w, XWindowAttributes *wa);	/* manage new client */
   106 void manage(Window w, XWindowAttributes *wa);	/* manage new client */
   106 void resize(Client *c, int x, int y,
   107 void resize(Client *c, int x, int y,
   107 		int w, int h, Bool sizehints);	/* resize with given coordinates c*/
   108 		int w, int h, Bool sizehints);	/* resize with given coordinates c*/
   108 void togglefloating(const char *arg);	/* toggles sel between floating/tiled state */
   109 void togglefloating(const char *arg);	/* toggles sel between floating/tiled state */
   109 void updatesizehints(Client *c);		/* update the size hint variables of c */
   110 void updatesizehints(Client *c);	/* update the size hint variables of c */
   110 void updatetitle(Client *c);		/* update the name of c */
   111 void updatetitle(Client *c);		/* update the name of c */
   111 void unmanage(Client *c);		/* destroy c */
   112 void unmanage(Client *c);		/* destroy c */
   112 
   113 
   113 /* draw.c */
   114 /* draw.c */
   114 void drawstatus(void);			/* draw the bar */
   115 void drawstatus(void);			/* draw the bar */
   124 void incmasterw(const char *arg);	/* increments the master width with arg's index value */
   125 void incmasterw(const char *arg);	/* increments the master width with arg's index value */
   125 void incnmaster(const char *arg);	/* increments nmaster with arg's index value */
   126 void incnmaster(const char *arg);	/* increments nmaster with arg's index value */
   126 void initlayouts(void);			/* initialize layout array */
   127 void initlayouts(void);			/* initialize layout array */
   127 Client *nexttiled(Client *c);		/* returns tiled successor of c */
   128 Client *nexttiled(Client *c);		/* returns tiled successor of c */
   128 void restack(void);			/* restores z layers of all clients */
   129 void restack(void);			/* restores z layers of all clients */
   129 void setlayout(const char *arg);		/* sets layout, -1 toggles */
   130 void setlayout(const char *arg);	/* sets layout, -1 toggles */
   130 void togglemax(const char *arg);		/* toggles maximization of floating client */
   131 void togglebar(const char *arg);	/* shows/hides the bar */
       
   132 void togglemax(const char *arg);	/* toggles maximization of floating client */
   131 void zoom(const char *arg);		/* zooms the focused client to master area, arg is ignored */
   133 void zoom(const char *arg);		/* zooms the focused client to master area, arg is ignored */
   132 
   134 
   133 /* main.c */
   135 /* main.c */
       
   136 void updatebarpos(void);		/* updates the bar position */
   134 void quit(const char *arg);		/* quit dwm nicely */
   137 void quit(const char *arg);		/* quit dwm nicely */
   135 int xerror(Display *dsply, XErrorEvent *ee);	/* dwm's X error handler */
   138 int xerror(Display *dsply, XErrorEvent *ee);	/* dwm's X error handler */
   136 
   139 
   137 /* tag.c */
   140 /* tag.c */
   138 void compileregs(void);			/* initialize regexps of rules defined in config.h */
   141 void compileregs(void);			/* initialize regexps of rules defined in config.h */
   139 Bool isvisible(Client *c);		/* returns True if client is visible */
   142 Bool isvisible(Client *c);		/* returns True if client is visible */
   140 void settags(Client *c, Client *trans);	/* sets tags of c */
   143 void settags(Client *c, Client *trans);	/* sets tags of c */
   141 void tag(const char *arg);		/* tags sel with arg's index */
   144 void tag(const char *arg);		/* tags sel with arg's index */
   142 void toggletag(const char *arg);		/* toggles sel tags with arg's index */
   145 void toggletag(const char *arg);	/* toggles sel tags with arg's index */
   143 void toggleview(const char *arg);	/* toggles the tag with arg's index (in)visible */
   146 void toggleview(const char *arg);	/* toggles the tag with arg's index (in)visible */
   144 void view(const char *arg);		/* views the tag with arg's index */
   147 void view(const char *arg);		/* views the tag with arg's index */
   145 
   148 
   146 /* util.c */
   149 /* util.c */
   147 void *emallocz(unsigned int size);	/* allocates zero-initialized memory, exits on error */
   150 void *emallocz(unsigned int size);	/* allocates zero-initialized memory, exits on error */