t* dwm + patches
       
   URI git clone git://git.codevoid.de/dwm-sdk
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit c0ba635c50dc53f06e4fc96392415b3d19b25826
   DIR parent 0a673ad7a37f3a1bdda7cef316bda300f8f181eb
   URI Author: anselm@garbe.us <unknown>
       Date:   Sun, 18 Nov 2012 17:52:42 +0100
       
       removed DDC, all is Draw-dependent
       Diffstat:
         M draw.c                              |      65 +++++++++----------------------
         M draw.h                              |      57 ++++++++++++-------------------
       
       2 files changed, 40 insertions(+), 82 deletions(-)
       ---
   DIR diff --git a/draw.c b/draw.c
       t@@ -35,28 +35,6 @@ draw_free(Draw *draw) {
                free(draw);
        }
        
       -DDC *
       -dc_create(Draw *draw) {
       -        DDC *dc = (DDC *)calloc(1, sizeof(DDC));
       -        dc->draw = draw;
       -        dc->next = draw->dc;
       -        draw->dc = dc;
       -        return dc;
       -}
       -
       -void
       -dc_free(DDC *dc) {
       -        DDC **tdc;
       -
       -        if(!dc)
       -                return;
       -        /* remove from dc list */
       -        for(tdc = &dc->draw->dc; *tdc && *tdc != dc; tdc = &(*tdc)->next);
       -        *tdc = dc->next;
       -        /* TODO: deallocate any resources of this dc, if needed */
       -        free(dc);
       -}
       -
        Fnt *
        font_create(const char *fontname) {
                Fnt *font = (Fnt *)calloc(1, sizeof(Fnt));
       t@@ -88,57 +66,50 @@ col_free(Col *col) {
        }
        
        void
       -dc_setfont(DDC *dc, Fnt *font) {
       -        if(!dc || !font)
       +draw_setfont(Draw *draw, Fnt *font) {
       +        if(!draw || !font)
                        return;
       -        dc->font = font;
       +        draw->font = font;
        }
        
        void
       -dc_setfg(DDC *dc, Col *col) {
       -        if(!dc || !col) 
       +draw_setfg(Draw *draw, Col *col) {
       +        if(!draw || !col) 
                        return;
       -        dc->fg = col;
       +        draw->fg = col;
        }
        
        void
       -dc_setbg(DDC *dc, Col *col) {
       -        if(!dc || !col)
       +draw_setbg(Draw *draw, Col *col) {
       +        if(!draw || !col)
                        return;
       -        dc->bg = col;
       +        draw->bg = col;
        }
        
        void
       -dc_setfill(DDC *dc, Bool fill) {
       -        if(!dc)
       -                return;
       -        dc->fill = fill;
       -}
       -
       -void
       -dc_drawrect(DDC *dc, int x, int y, unsigned int w, unsigned int h) {
       -        if(!dc)
       +draw_rect(Draw *draw, int x, int y, unsigned int w, unsigned int h) {
       +        if(!draw)
                        return;
                /* TODO: draw the rectangle */
        }
        
        void
       -dc_drawtext(DDC *dc, int x, int y, const char *text) {
       -        if(!dc)
       +draw_text(Draw *draw, int x, int y, const char *text) {
       +        if(!draw)
                        return;
                /* TODO: draw the text */
        }
        
        void
       -dc_map(DDC *dc, int x, int y, unsigned int w, unsigned int h) {
       -        if(!dc)
       +draw_map(Draw *draw, int x, int y, unsigned int w, unsigned int h) {
       +        if(!draw)
                        return;
       -        /* TODO: map the dc contents in the region */
       +        /* TODO: map the draw contents in the region */
        }
        
        void
       -dc_getextents(DDC *dc, const char *text, TextExtents *extents) {
       -        if(!dc || !extents)
       +draw_getextents(Draw *draw, const char *text, TextExtents *extents) {
       +        if(!draw || !extents)
                        return;
                /* TODO: get extents */
        }
   DIR diff --git a/draw.h b/draw.h
       t@@ -1,19 +1,5 @@
        /* See LICENSE file for copyright and license details. */
        
       -typedef struct _DDC DDC;
       -
       -/* X11 types - begin */
       -typedef struct _XDraw Draw;
       -struct _XDraw {
       -        unsigned int w, h;
       -        Display *dpy;
       -        int screen;
       -        Window win;
       -        Drawable drawable;
       -        GC gc;
       -        DDC *dc;
       -};
       -
        struct _XCol {
                unsigned long rgb;
        };
       t@@ -29,15 +15,6 @@ struct _XFont {
        typedef struct _XFont Fnt;
        /* X11 types - end */
        
       -struct _DDC {
       -        Draw *draw;
       -        Col *fg;
       -        Col *bg;
       -        Fnt *font;
       -        Bool fill;
       -        DDC *next;
       -};
       -
        typedef struct {
                unsigned int w;
                unsigned int h;
       t@@ -47,15 +24,26 @@ typedef struct {
                int yOff;
        } TextExtents;
        
       +
       +/* X11 types - begin */
       +typedef struct _XDraw Draw;
       +struct _XDraw {
       +        unsigned int w, h;
       +        Display *dpy;
       +        int screen;
       +        Window win;
       +        Drawable drawable;
       +        GC gc;
       +        Col *fg;
       +        Col *bg;
       +        Fnt *font;
       +};
       +
        /* Drawable abstraction */
        Draw *draw_create(Display *dpy, int screen, 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);
       t@@ -65,18 +53,17 @@ 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);
       +void draw_setfont(Draw *draw, Fnt *font);
       +void draw_setfg(Draw *draw, Col *col);
       +void draw_setbg(Draw *draw, Col *col);
        
        /* 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);
       +void draw_rect(Draw *draw, int x, int y, unsigned int w, unsigned int h);
       +void draw_text(Draw *draw, int x, int y, const char *text);
        
        /* Map functions */
       -void dc_map(DDC *dc, int x, int y, unsigned int w, unsigned int h);
       +void draw_map(Draw *draw, int x, int y, unsigned int w, unsigned int h);
        
        /* Text functions */
       -void dc_getextents(DDC *dc, const char *text, TextExtents *extents);
       +void draw_getextents(Draw *draw, const char *text, TextExtents *extents);