tapplied Julian's enum approach, however renamed theme into scheme resp. Theme … | |
git clone git://src.adamsgaard.dk/dwm | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 33a74489f036600bb80a3c34fcdf10e5f9dafae1 | |
parent 5364697914fd4272fc1a6494b4fc522d2935427a | |
Author: Anselm R Garbe <[email protected]> | |
Date: Wed, 19 Jun 2013 19:35:33 +0200 | |
applied Julian's enum approach, | |
however renamed theme into scheme resp. Theme into ClrScheme | |
Diffstat: | |
M drw.c | 22 ++++++++++------------ | |
M drw.h | 6 +++--- | |
M dwm.c | 49 +++++++++++++++--------------… | |
3 files changed, 37 insertions(+), 40 deletions(-) | |
--- | |
diff --git a/drw.c b/drw.c | |
t@@ -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 | |
t@@ -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, i… | |
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->… | |
+ XSetForeground(drw->dpy, drw->gc, invert ? drw->scheme->bg->rgb : drw-… | |
dx = (drw->font->ascent + drw->font->descent + 2) / 4; | |
if(filled) | |
XFillRectangle(drw->dpy, drw->drawable, drw->gc, x+1, y+1, dx+… | |
t@@ -147,9 +145,9 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned … | |
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->… | |
+ XSetForeground(drw->dpy, drw->gc, invert ? drw->scheme->fg->rgb : drw-… | |
XFillRectangle(drw->dpy, drw->drawable, drw->gc, x, y, w, h); | |
if(!text || !drw->font) | |
return; | |
t@@ -166,7 +164,7 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned … | |
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->… | |
+ XSetForeground(drw->dpy, drw->gc, invert ? drw->scheme->bg->rgb : drw-… | |
if(drw->font->set) | |
XmbDrawString(drw->dpy, drw->drawable, drw->font->set, drw->gc… | |
else | |
diff --git a/drw.h b/drw.h | |
t@@ -20,7 +20,7 @@ typedef struct { | |
Clr *fg; | |
Clr *bg; | |
Clr *border; | |
-} Theme; | |
+} ClrScheme; | |
typedef struct { | |
unsigned int w, h; | |
t@@ -29,7 +29,7 @@ typedef struct { | |
Window root; | |
Drawable drawable; | |
GC gc; | |
- Theme *theme; | |
+ ClrScheme *scheme; | |
Fnt *font; | |
} Drw; | |
t@@ -59,7 +59,7 @@ void drw_cur_free(Drw *drw, Cur *cursor); | |
/* Drawing context manipulation */ | |
void drw_setfont(Drw *drw, Fnt *font); | |
-void drw_settheme(Drw *drw, Theme *theme); | |
+void drw_setscheme(Drw *drw, ClrScheme *scheme); | |
/* Drawing functions */ | |
void drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, int fill… | |
diff --git a/dwm.c b/dwm.c | |
t@@ -57,14 +57,14 @@ | |
#define TEXTW(X) (drw_font_getexts_width(drw->font, X, strlen(X… | |
/* enums */ | |
-enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */ | |
-enum { ColBorder, ColFG, ColBG, ColLast }; /* color */ | |
+enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */ | |
+enum { SchemeNorm, SchemeSel, SchemeLast }; /* color schemes */ | |
enum { NetSupported, NetWMName, NetWMState, | |
NetWMFullscreen, NetActiveWindow, NetWMWindowType, | |
- NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */ | |
+ NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */ | |
enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default atoms… | |
enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, | |
- ClkClientWin, ClkRootWin, ClkLast }; /* clicks */ | |
+ ClkClientWin, ClkRootWin, ClkLast }; /* clicks */ | |
typedef union { | |
int i; | |
t@@ -260,8 +260,7 @@ static void (*handler[LASTEvent]) (XEvent *) = { | |
static Atom wmatom[WMLast], netatom[NetLast]; | |
static Bool running = True; | |
static Cur *cursor[CurLast]; | |
-static Theme thmnorm[ColLast]; | |
-static Theme thmsel[ColLast]; | |
+static ClrScheme scheme[SchemeLast]; | |
static Display *dpy; | |
static Drw *drw; | |
static Fnt *fnt; | |
t@@ -476,12 +475,12 @@ cleanup(void) { | |
drw_cur_free(drw, cursor[CurResize]); | |
drw_cur_free(drw, cursor[CurMove]); | |
drw_font_free(dpy, fnt); | |
- drw_clr_free(thmnorm->border); | |
- drw_clr_free(thmnorm->bg); | |
- drw_clr_free(thmnorm->fg); | |
- drw_clr_free(thmsel->border); | |
- drw_clr_free(thmsel->bg); | |
- drw_clr_free(thmsel->fg); | |
+ drw_clr_free(scheme[SchemeNorm].border); | |
+ drw_clr_free(scheme[SchemeNorm].bg); | |
+ drw_clr_free(scheme[SchemeNorm].fg); | |
+ drw_clr_free(scheme[SchemeSel].border); | |
+ drw_clr_free(scheme[SchemeSel].bg); | |
+ drw_clr_free(scheme[SchemeSel].fg); | |
drw_free(drw); | |
XSync(dpy, False); | |
XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime); | |
t@@ -705,14 +704,14 @@ drawbar(Monitor *m) { | |
x = 0; | |
for(i = 0; i < LENGTH(tags); i++) { | |
w = TEXTW(tags[i]); | |
- drw_settheme(drw, m->tagset[m->seltags] & 1 << i ? thmsel : th… | |
+ drw_setscheme(drw, m->tagset[m->seltags] & 1 << i ? &scheme[Sc… | |
drw_text(drw, x, 0, w, bh, tags[i], urg & 1 << i); | |
drw_rect(drw, x, 0, w, bh, m == selmon && selmon->sel && selmo… | |
occ & 1 << i, urg & 1 << i); | |
x += w; | |
} | |
w = blw = TEXTW(m->ltsymbol); | |
- drw_settheme(drw, thmnorm); | |
+ drw_setscheme(drw, &scheme[SchemeNorm]); | |
drw_text(drw, x, 0, w, bh, m->ltsymbol, 0); | |
x += w; | |
xx = x; | |
t@@ -730,12 +729,12 @@ drawbar(Monitor *m) { | |
if((w = x - xx) > bh) { | |
x = xx; | |
if(m->sel) { | |
- drw_settheme(drw, m == selmon ? thmsel : thmnorm); | |
+ drw_setscheme(drw, m == selmon ? &scheme[SchemeSel] : … | |
drw_text(drw, x, 0, w, bh, m->sel->name, 0); | |
drw_rect(drw, x, 0, w, bh, m->sel->isfixed, m->sel->is… | |
} | |
else { | |
- drw_settheme(drw, thmnorm); | |
+ drw_setscheme(drw, &scheme[SchemeNorm]); | |
drw_text(drw, x, 0, w, bh, NULL, 0); | |
} | |
} | |
t@@ -793,7 +792,7 @@ focus(Client *c) { | |
detachstack(c); | |
attachstack(c); | |
grabbuttons(c, True); | |
- XSetWindowBorder(dpy, c->win, thmsel->border->rgb); | |
+ XSetWindowBorder(dpy, c->win, scheme[SchemeSel].border->rgb); | |
setfocus(c); | |
} | |
else { | |
t@@ -1041,7 +1040,7 @@ manage(Window w, XWindowAttributes *wa) { | |
wc.border_width = c->bw; | |
XConfigureWindow(dpy, w, CWBorderWidth, &wc); | |
- XSetWindowBorder(dpy, w, thmnorm->border->rgb); | |
+ XSetWindowBorder(dpy, w, scheme[SchemeNorm].border->rgb); | |
configure(c); /* propagates border_width, if size doesn't change */ | |
updatewindowtype(c); | |
updatesizehints(c); | |
t@@ -1523,12 +1522,12 @@ setup(void) { | |
cursor[CurResize] = drw_cur_create(drw, XC_sizing); | |
cursor[CurMove] = drw_cur_create(drw, XC_fleur); | |
/* init appearance */ | |
- thmnorm->border = drw_clr_create(drw, normbordercolor); | |
- thmnorm->bg = drw_clr_create(drw, normbgcolor); | |
- thmnorm->fg = drw_clr_create(drw, normfgcolor); | |
- thmsel->border = drw_clr_create(drw, selbordercolor); | |
- thmsel->bg = drw_clr_create(drw, selbgcolor); | |
- thmsel->fg = drw_clr_create(drw, selfgcolor); | |
+ scheme[SchemeNorm].border = drw_clr_create(drw, normbordercolor); | |
+ scheme[SchemeNorm].bg = drw_clr_create(drw, normbgcolor); | |
+ scheme[SchemeNorm].fg = drw_clr_create(drw, normfgcolor); | |
+ scheme[SchemeSel].border = drw_clr_create(drw, selbordercolor); | |
+ scheme[SchemeSel].bg = drw_clr_create(drw, selbgcolor); | |
+ scheme[SchemeSel].fg = drw_clr_create(drw, selfgcolor); | |
/* init bars */ | |
updatebars(); | |
updatestatus(); | |
t@@ -1674,7 +1673,7 @@ unfocus(Client *c, Bool setfocus) { | |
if(!c) | |
return; | |
grabbuttons(c, False); | |
- XSetWindowBorder(dpy, c->win, thmnorm->border->rgb); | |
+ XSetWindowBorder(dpy, c->win, scheme[SchemeNorm].border->rgb); | |
if(setfocus) { | |
XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); | |
XDeleteProperty(dpy, root, netatom[NetActiveWindow]); |