| tstarting with initial draw.h - dwm - [fork] customized build of dwm, the dynam… | |
| git clone git://src.adamsgaard.dk/dwm | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| commit 87adcd263b1fc75f7eb3172dac55ca641fd7a96a | |
| parent fd3c19bd550e346d515c8e124c7fa55599a1aa22 | |
| Author: [email protected] <unknown> | |
| Date: Sat, 17 Nov 2012 19:01:22 +0100 | |
| starting with initial draw.h | |
| Diffstat: | |
| A draw.h | 76 +++++++++++++++++++++++++++++… | |
| M dwm.c | 2 ++ | |
| 2 files changed, 78 insertions(+), 0 deletions(-) | |
| --- | |
| diff --git a/draw.h b/draw.h | |
| t@@ -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); | |
| + | |
| diff --git a/dwm.c b/dwm.c | |
| t@@ -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|C… |