JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
slave deck almost done
[dwm.git] / drw.c
diff --git a/drw.c b/drw.c
index 6e5801c..b130405 100644 (file)
--- a/drw.c
+++ b/drw.c
@@ -109,9 +109,8 @@ drw_clr_create(Drw *drw, const char *clrname) {
 
 void
 drw_clr_free(Clr *clr) {
-       if(!clr)
-               return;
-       free(clr);
+       if(clr)
+               free(clr);
 }
 
 void
@@ -121,19 +120,18 @@ drw_setfont(Drw *drw, Fnt *font) {
 }
 
 void
-drw_settheme(Drw *drw, Theme *theme) {
-       if(!drw || !theme) 
-               return;
-       drw->theme = theme;
+drw_setscheme(Drw *drw, ClrScheme *scheme) {
+       if(drw && scheme) 
+               drw->scheme = scheme;
 }
 
 void
 drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, int filled, int empty, int invert) {
        int dx;
 
-       if(!drw || !drw->font || !drw->theme)
+       if(!drw || !drw->font || !drw->scheme)
                return;
-       XSetForeground(drw->dpy, drw->gc, invert ? drw->theme->bg->rgb : drw->theme->fg->rgb);
+       XSetForeground(drw->dpy, drw->gc, invert ? drw->scheme->bg->rgb : drw->scheme->fg->rgb);
        dx = (drw->font->ascent + drw->font->descent + 2) / 4;
        if(filled)
                XFillRectangle(drw->dpy, drw->drawable, drw->gc, x+1, y+1, dx+1, dx+1);
@@ -147,9 +145,9 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, const char *tex
        int i, tx, ty, th, len, olen;
        Extnts tex;
 
-       if(!drw || !drw->theme)
+       if(!drw || !drw->scheme)
                return;
-       XSetForeground(drw->dpy, drw->gc, invert ? drw->theme->fg->rgb : drw->theme->bg->rgb);
+       XSetForeground(drw->dpy, drw->gc, invert ? drw->scheme->fg->rgb : drw->scheme->bg->rgb);
        XFillRectangle(drw->dpy, drw->drawable, drw->gc, x, y, w, h);
        if(!text || !drw->font)
                return;
@@ -159,14 +157,14 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, const char *tex
        ty = y + (h / 2) - (th / 2) + drw->font->ascent;
        tx = x + (h / 2);
        /* shorten text if necessary */
-       for(len = MIN(olen, sizeof buf); len && tex.w > w - tex.h; len--)
+       for(len = MIN(olen, sizeof buf); len && (tex.w > w - tex.h || w < tex.h); len--)
                drw_font_getexts(drw->font, text, len, &tex);
        if(!len)
                return;
        memcpy(buf, text, len);
        if(len < olen)
                for(i = len; i && i > len - 3; buf[--i] = '.');
-       XSetForeground(drw->dpy, drw->gc, invert ? drw->theme->bg->rgb : drw->theme->fg->rgb);
+       XSetForeground(drw->dpy, drw->gc, invert ? drw->scheme->bg->rgb : drw->scheme->fg->rgb);
        if(drw->font->set)
                XmbDrawString(drw->dpy, drw->drawable, drw->font->set, drw->gc, tx, ty, buf, len);
        else