starting with initial draw.h
This commit is contained in:
		
							
								
								
									
										76
									
								
								draw.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								draw.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,76 @@ | ||||
| /* See LICENSE file for copyright and license details. */ | ||||
|  | ||||
| /* X11 types - begin */ | ||||
| struct _XDraw { | ||||
| 	unsigned int w, h; | ||||
| 	Display *dpy; | ||||
| 	Drawable drawable; | ||||
| 	GC gc; | ||||
| }; | ||||
| typedef struct _XDraw Draw; | ||||
|  | ||||
| struct _XCol { | ||||
| 	unsigned long rgb; | ||||
| }; | ||||
| typedef struct _XCol Col; | ||||
|  | ||||
| struct _XFont { | ||||
| 	int ascent; | ||||
| 	int descent; | ||||
| 	unsigned int h, w; | ||||
| 	XFontSet set; | ||||
| 	XFontStruct *xfont; | ||||
| }; | ||||
| typedef struct _XFont Fnt; | ||||
| /* X11 types - end */ | ||||
|  | ||||
| typedef struct { | ||||
| 	Draw *draw; | ||||
| 	Col *fg; | ||||
| 	Col *bg; | ||||
| 	Fnt *font; | ||||
| 	Bool fill; | ||||
| } DDC; | ||||
|  | ||||
| typedef struct { | ||||
| 	unsigned int w; | ||||
| 	unsigned int h; | ||||
| 	int x; | ||||
| 	int y; | ||||
| 	int xOff; | ||||
| 	int yOff; | ||||
| } TextExtents; | ||||
|  | ||||
| /* Drawable abstraction */ | ||||
| Draw *draw_create(Display *dpy, Window win, unsigned int w, unsigned int h); | ||||
| void draw_resize(Draw *draw, unsigned int w, unsigned int h); | ||||
| void draw_free(Draw *draw); | ||||
|  | ||||
| /* Drawing context abstraction */ | ||||
| DDC *dc_create(Draw *draw); | ||||
| void dc_free(DDC *dc); | ||||
|  | ||||
| /* Fnt abstraction */ | ||||
| Fnt *font_create(const char *fontname); | ||||
| void font_free(Fnt *font); | ||||
|  | ||||
| /* Colour abstraction */ | ||||
| Col *col_create(const char *colname); | ||||
| void col_free(Col *col); | ||||
|  | ||||
| /* Drawing context manipulation */ | ||||
| void dc_setfont(DDC *dc, Fnt *font); | ||||
| void dc_setfg(DDC *dc, Col col); | ||||
| void dc_setbg(DDC *dc, Col col); | ||||
| void dc_setfill(DDC *dc, Bool fill); | ||||
|  | ||||
| /* Drawing functions */ | ||||
| void dc_drawrect(DDC *dc, int x, int y, unsigned int w, unsigned int h); | ||||
| void dc_drawtext(DDC *dc, int x, int y, const char *text); | ||||
|  | ||||
| /* Map functions */ | ||||
| void dc_map(DDC *dc, int x, int y, unsigned int w, unsigned int h); | ||||
|  | ||||
| /* Text functions */ | ||||
| void dc_getextents(DDC *dc, const char *text, TextExtents *extents); | ||||
|  | ||||
							
								
								
									
										2
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								dwm.c
									
									
									
									
									
								
							| @@ -43,6 +43,8 @@ | ||||
| #include <X11/extensions/Xinerama.h> | ||||
| #endif /* XINERAMA */ | ||||
|  | ||||
| #include "draw.h" | ||||
|  | ||||
| /* macros */ | ||||
| #define BUTTONMASK              (ButtonPressMask|ButtonReleaseMask) | ||||
| #define CLEANMASK(mask)         (mask & ~(numlockmask|LockMask) & (ShiftMask|ControlMask|Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask)) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user