starting with initial draw.h
This commit is contained in:
		
							parent
							
								
									fd3c19bd55
								
							
						
					
					
						commit
						87adcd263b
					
				
							
								
								
									
										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))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user