cleaned up dwm.c/dwm.h somewhat that it allows easier integration of patches
This commit is contained in:
		
							parent
							
								
									24c125cc8a
								
							
						
					
					
						commit
						5a04edecb1
					
				
							
								
								
									
										116
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										116
									
								
								dwm.c
									
									
									
									
									
								
							| @ -49,41 +49,7 @@ | |||||||
| #define CLEANMASK(mask)		(mask & ~(numlockmask | LockMask)) | #define CLEANMASK(mask)		(mask & ~(numlockmask | LockMask)) | ||||||
| #define MOUSEMASK		(BUTTONMASK | PointerMotionMask) | #define MOUSEMASK		(BUTTONMASK | PointerMotionMask) | ||||||
| 
 | 
 | ||||||
| /* enums */ | /* local typedefs */ | ||||||
| enum { BarTop, BarBot, BarOff };			/* bar position */ |  | ||||||
| enum { CurNormal, CurResize, CurMove, CurLast };	/* cursor */ |  | ||||||
| enum { ColBorder, ColFG, ColBG, ColLast };		/* color */ |  | ||||||
| enum { NetSupported, NetWMName, NetLast };		/* EWMH atoms */ |  | ||||||
| enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */ |  | ||||||
| 
 |  | ||||||
| /* typedefs */ |  | ||||||
| typedef struct { |  | ||||||
| 	int x, y, w, h; |  | ||||||
| 	unsigned long norm[ColLast]; |  | ||||||
| 	unsigned long sel[ColLast]; |  | ||||||
| 	Drawable drawable; |  | ||||||
| 	GC gc; |  | ||||||
| 	struct { |  | ||||||
| 		int ascent; |  | ||||||
| 		int descent; |  | ||||||
| 		int height; |  | ||||||
| 		XFontSet set; |  | ||||||
| 		XFontStruct *xfont; |  | ||||||
| 	} font; |  | ||||||
| } DC; /* draw context */ |  | ||||||
| 
 |  | ||||||
| typedef struct { |  | ||||||
| 	unsigned long mod; |  | ||||||
| 	KeySym keysym; |  | ||||||
| 	void (*func)(const char *arg); |  | ||||||
| 	const char *arg; |  | ||||||
| } Key; |  | ||||||
| 
 |  | ||||||
| typedef struct { |  | ||||||
| 	const char *symbol; |  | ||||||
| 	void (*arrange)(void); |  | ||||||
| } Layout; |  | ||||||
| 
 |  | ||||||
| typedef struct { | typedef struct { | ||||||
| 	const char *prop; | 	const char *prop; | ||||||
| 	const char *tags; | 	const char *tags; | ||||||
| @ -95,86 +61,6 @@ typedef struct { | |||||||
| 	regex_t *tagregex; | 	regex_t *tagregex; | ||||||
| } Regs; | } Regs; | ||||||
| 
 | 
 | ||||||
| /* forward declarations */ |  | ||||||
| void applyrules(Client *c); |  | ||||||
| void arrange(void); |  | ||||||
| void attach(Client *c); |  | ||||||
| void attachstack(Client *c); |  | ||||||
| void ban(Client *c); |  | ||||||
| void buttonpress(XEvent *e); |  | ||||||
| void checkotherwm(void); |  | ||||||
| void cleanup(void); |  | ||||||
| void compileregs(void); |  | ||||||
| void configure(Client *c); |  | ||||||
| void configurenotify(XEvent *e); |  | ||||||
| void configurerequest(XEvent *e); |  | ||||||
| void destroynotify(XEvent *e); |  | ||||||
| void detach(Client *c); |  | ||||||
| void detachstack(Client *c); |  | ||||||
| void drawbar(void); |  | ||||||
| void drawsquare(Bool filled, Bool empty, unsigned long col[ColLast]); |  | ||||||
| void drawtext(const char *text, unsigned long col[ColLast]); |  | ||||||
| void *emallocz(unsigned int size); |  | ||||||
| void enternotify(XEvent *e); |  | ||||||
| void eprint(const char *errstr, ...); |  | ||||||
| void expose(XEvent *e); |  | ||||||
| void floating(void); /* default floating layout */ |  | ||||||
| void focus(Client *c); |  | ||||||
| void focusnext(const char *arg); |  | ||||||
| void focusprev(const char *arg); |  | ||||||
| Client *getclient(Window w); |  | ||||||
| unsigned long getcolor(const char *colstr); |  | ||||||
| long getstate(Window w); |  | ||||||
| Bool gettextprop(Window w, Atom atom, char *text, unsigned int size); |  | ||||||
| void grabbuttons(Client *c, Bool focused); |  | ||||||
| unsigned int idxoftag(const char *tag); |  | ||||||
| void initfont(const char *fontstr); |  | ||||||
| Bool isarrange(void (*func)()); |  | ||||||
| Bool isoccupied(unsigned int t); |  | ||||||
| Bool isprotodel(Client *c); |  | ||||||
| Bool isvisible(Client *c); |  | ||||||
| void keypress(XEvent *e); |  | ||||||
| void killclient(const char *arg); |  | ||||||
| void leavenotify(XEvent *e); |  | ||||||
| void manage(Window w, XWindowAttributes *wa); |  | ||||||
| void mappingnotify(XEvent *e); |  | ||||||
| void maprequest(XEvent *e); |  | ||||||
| void movemouse(Client *c); |  | ||||||
| Client *nexttiled(Client *c); |  | ||||||
| void propertynotify(XEvent *e); |  | ||||||
| void quit(const char *arg); |  | ||||||
| void resize(Client *c, int x, int y, int w, int h, Bool sizehints); |  | ||||||
| void resizemouse(Client *c); |  | ||||||
| void restack(void); |  | ||||||
| void run(void); |  | ||||||
| void scan(void); |  | ||||||
| void setclientstate(Client *c, long state); |  | ||||||
| void setlayout(const char *arg); |  | ||||||
| void setmwfact(const char *arg); |  | ||||||
| void setup(void); |  | ||||||
| void spawn(const char *arg); |  | ||||||
| void tag(const char *arg); |  | ||||||
| unsigned int textnw(const char *text, unsigned int len); |  | ||||||
| unsigned int textw(const char *text); |  | ||||||
| void tile(void); |  | ||||||
| void togglebar(const char *arg); |  | ||||||
| void togglefloating(const char *arg); |  | ||||||
| void togglemax(const char *arg); |  | ||||||
| void toggletag(const char *arg); |  | ||||||
| void toggleview(const char *arg); |  | ||||||
| void unban(Client *c); |  | ||||||
| void unmanage(Client *c); |  | ||||||
| void unmapnotify(XEvent *e); |  | ||||||
| void updatebarpos(void); |  | ||||||
| void updatesizehints(Client *c); |  | ||||||
| void updatetitle(Client *c); |  | ||||||
| void view(const char *arg); |  | ||||||
| void viewprevtag(const char *arg);	/* views previous selected tags */ |  | ||||||
| int xerror(Display *dpy, XErrorEvent *ee); |  | ||||||
| int xerrordummy(Display *dsply, XErrorEvent *ee); |  | ||||||
| int xerrorstart(Display *dsply, XErrorEvent *ee); |  | ||||||
| void zoom(const char *arg); |  | ||||||
| 
 |  | ||||||
| /* variables */ | /* variables */ | ||||||
| char stext[256]; | char stext[256]; | ||||||
| double mwfact; | double mwfact; | ||||||
|  | |||||||
							
								
								
									
										114
									
								
								dwm.h
									
									
									
									
									
								
							
							
						
						
									
										114
									
								
								dwm.h
									
									
									
									
									
								
							| @ -1,6 +1,13 @@ | |||||||
| /* See LICENSE file for copyright and license details. */ | /* See LICENSE file for copyright and license details. */ | ||||||
| #include <X11/Xlib.h> | #include <X11/Xlib.h> | ||||||
| 
 | 
 | ||||||
|  | /* enums */ | ||||||
|  | enum { BarTop, BarBot, BarOff };			/* bar position */ | ||||||
|  | enum { CurNormal, CurResize, CurMove, CurLast };	/* cursor */ | ||||||
|  | enum { ColBorder, ColFG, ColBG, ColLast };		/* color */ | ||||||
|  | enum { NetSupported, NetWMName, NetLast };		/* EWMH atoms */ | ||||||
|  | enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */ | ||||||
|  | 
 | ||||||
| /* typedefs */ | /* typedefs */ | ||||||
| typedef struct Client Client; | typedef struct Client Client; | ||||||
| struct Client { | struct Client { | ||||||
| @ -18,3 +25,110 @@ struct Client { | |||||||
| 	Client *snext; | 	Client *snext; | ||||||
| 	Window win; | 	Window win; | ||||||
| }; | }; | ||||||
|  | 
 | ||||||
|  | typedef struct { | ||||||
|  | 	int x, y, w, h; | ||||||
|  | 	unsigned long norm[ColLast]; | ||||||
|  | 	unsigned long sel[ColLast]; | ||||||
|  | 	Drawable drawable; | ||||||
|  | 	GC gc; | ||||||
|  | 	struct { | ||||||
|  | 		int ascent; | ||||||
|  | 		int descent; | ||||||
|  | 		int height; | ||||||
|  | 		XFontSet set; | ||||||
|  | 		XFontStruct *xfont; | ||||||
|  | 	} font; | ||||||
|  | } DC; /* draw context */ | ||||||
|  | 
 | ||||||
|  | typedef struct { | ||||||
|  | 	unsigned long mod; | ||||||
|  | 	KeySym keysym; | ||||||
|  | 	void (*func)(const char *arg); | ||||||
|  | 	const char *arg; | ||||||
|  | } Key; | ||||||
|  | 
 | ||||||
|  | typedef struct { | ||||||
|  | 	const char *symbol; | ||||||
|  | 	void (*arrange)(void); | ||||||
|  | } Layout; | ||||||
|  | 
 | ||||||
|  | /* functions */ | ||||||
|  | void applyrules(Client *c); | ||||||
|  | void arrange(void); | ||||||
|  | void attach(Client *c); | ||||||
|  | void attachstack(Client *c); | ||||||
|  | void ban(Client *c); | ||||||
|  | void buttonpress(XEvent *e); | ||||||
|  | void checkotherwm(void); | ||||||
|  | void cleanup(void); | ||||||
|  | void compileregs(void); | ||||||
|  | void configure(Client *c); | ||||||
|  | void configurenotify(XEvent *e); | ||||||
|  | void configurerequest(XEvent *e); | ||||||
|  | void destroynotify(XEvent *e); | ||||||
|  | void detach(Client *c); | ||||||
|  | void detachstack(Client *c); | ||||||
|  | void drawbar(void); | ||||||
|  | void drawsquare(Bool filled, Bool empty, unsigned long col[ColLast]); | ||||||
|  | void drawtext(const char *text, unsigned long col[ColLast]); | ||||||
|  | void *emallocz(unsigned int size); | ||||||
|  | void enternotify(XEvent *e); | ||||||
|  | void eprint(const char *errstr, ...); | ||||||
|  | void expose(XEvent *e); | ||||||
|  | void floating(void); /* default floating layout */ | ||||||
|  | void focus(Client *c); | ||||||
|  | void focusnext(const char *arg); | ||||||
|  | void focusprev(const char *arg); | ||||||
|  | Client *getclient(Window w); | ||||||
|  | unsigned long getcolor(const char *colstr); | ||||||
|  | long getstate(Window w); | ||||||
|  | Bool gettextprop(Window w, Atom atom, char *text, unsigned int size); | ||||||
|  | void grabbuttons(Client *c, Bool focused); | ||||||
|  | unsigned int idxoftag(const char *tag); | ||||||
|  | void initfont(const char *fontstr); | ||||||
|  | Bool isarrange(void (*func)()); | ||||||
|  | Bool isoccupied(unsigned int t); | ||||||
|  | Bool isprotodel(Client *c); | ||||||
|  | Bool isvisible(Client *c); | ||||||
|  | void keypress(XEvent *e); | ||||||
|  | void killclient(const char *arg); | ||||||
|  | void leavenotify(XEvent *e); | ||||||
|  | void manage(Window w, XWindowAttributes *wa); | ||||||
|  | void mappingnotify(XEvent *e); | ||||||
|  | void maprequest(XEvent *e); | ||||||
|  | void movemouse(Client *c); | ||||||
|  | Client *nexttiled(Client *c); | ||||||
|  | void propertynotify(XEvent *e); | ||||||
|  | void quit(const char *arg); | ||||||
|  | void resize(Client *c, int x, int y, int w, int h, Bool sizehints); | ||||||
|  | void resizemouse(Client *c); | ||||||
|  | void restack(void); | ||||||
|  | void run(void); | ||||||
|  | void scan(void); | ||||||
|  | void setclientstate(Client *c, long state); | ||||||
|  | void setlayout(const char *arg); | ||||||
|  | void setmwfact(const char *arg); | ||||||
|  | void setup(void); | ||||||
|  | void spawn(const char *arg); | ||||||
|  | void tag(const char *arg); | ||||||
|  | unsigned int textnw(const char *text, unsigned int len); | ||||||
|  | unsigned int textw(const char *text); | ||||||
|  | void tile(void); | ||||||
|  | void togglebar(const char *arg); | ||||||
|  | void togglefloating(const char *arg); | ||||||
|  | void togglemax(const char *arg); | ||||||
|  | void toggletag(const char *arg); | ||||||
|  | void toggleview(const char *arg); | ||||||
|  | void unban(Client *c); | ||||||
|  | void unmanage(Client *c); | ||||||
|  | void unmapnotify(XEvent *e); | ||||||
|  | void updatebarpos(void); | ||||||
|  | void updatesizehints(Client *c); | ||||||
|  | void updatetitle(Client *c); | ||||||
|  | void view(const char *arg); | ||||||
|  | void viewprevtag(const char *arg);	/* views previous selected tags */ | ||||||
|  | int xerror(Display *dpy, XErrorEvent *ee); | ||||||
|  | int xerrordummy(Display *dsply, XErrorEvent *ee); | ||||||
|  | int xerrorstart(Display *dsply, XErrorEvent *ee); | ||||||
|  | void zoom(const char *arg); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Anselm R. Garbe
						Anselm R. Garbe