get rid of struct color

This commit is contained in:
okan 2013-01-04 16:23:04 +00:00
parent c139df129c
commit 698530155d
4 changed files with 23 additions and 28 deletions

View File

@ -97,11 +97,6 @@ enum cwmcolor {
CWM_COLOR_MAX CWM_COLOR_MAX
}; };
struct color {
char *name;
unsigned long pixel;
};
struct geom { struct geom {
int x; int x;
int y; int y;
@ -211,7 +206,7 @@ struct screen_ctx {
Colormap colormap; Colormap colormap;
Window rootwin; Window rootwin;
Window menuwin; Window menuwin;
struct color color[CWM_COLOR_MAX]; unsigned long color[CWM_COLOR_MAX];
int cycling; int cycling;
struct geom view; /* viewable area */ struct geom view; /* viewable area */
struct geom work; /* workable area, gap-applied */ struct geom work; /* workable area, gap-applied */
@ -291,7 +286,7 @@ struct conf {
#define CONF_SNAPDIST 0 #define CONF_SNAPDIST 0
int snapdist; int snapdist;
struct gap gap; struct gap gap;
struct color color[CWM_COLOR_MAX]; char *color[CWM_COLOR_MAX];
char *menucolor[CWM_COLOR_MENU_MAX]; char *menucolor[CWM_COLOR_MENU_MAX];
char termpath[MAXPATHLEN]; char termpath[MAXPATHLEN];
char lockpath[MAXPATHLEN]; char lockpath[MAXPATHLEN];

View File

@ -475,17 +475,17 @@ client_draw_border(struct client_ctx *cc)
if (cc->active) if (cc->active)
switch (cc->flags & CLIENT_HIGHLIGHT) { switch (cc->flags & CLIENT_HIGHLIGHT) {
case CLIENT_GROUP: case CLIENT_GROUP:
pixel = sc->color[CWM_COLOR_BORDER_GROUP].pixel; pixel = sc->color[CWM_COLOR_BORDER_GROUP];
break; break;
case CLIENT_UNGROUP: case CLIENT_UNGROUP:
pixel = sc->color[CWM_COLOR_BORDER_UNGROUP].pixel; pixel = sc->color[CWM_COLOR_BORDER_UNGROUP];
break; break;
default: default:
pixel = sc->color[CWM_COLOR_BORDER_ACTIVE].pixel; pixel = sc->color[CWM_COLOR_BORDER_ACTIVE];
break; break;
} }
else else
pixel = sc->color[CWM_COLOR_BORDER_INACTIVE].pixel; pixel = sc->color[CWM_COLOR_BORDER_INACTIVE];
XSetWindowBorderWidth(X_Dpy, cc->win, cc->bwidth); XSetWindowBorderWidth(X_Dpy, cc->win, cc->bwidth);
XSetWindowBorder(X_Dpy, cc->win, pixel); XSetWindowBorder(X_Dpy, cc->win, pixel);

16
conf.c
View File

@ -71,11 +71,11 @@ static char *menu_color_binds[CWM_COLOR_MENU_MAX] = {
"", /* CWM_COLOR_MENU_FONT_SEL */ "", /* CWM_COLOR_MENU_FONT_SEL */
}; };
static struct color color_binds[CWM_COLOR_MAX] = { static char *color_binds[CWM_COLOR_MAX] = {
{ "#CCCCCC", 0 }, /* CWM_COLOR_BORDER_ACTIVE */ "#CCCCCC", /* CWM_COLOR_BORDER_ACTIVE */
{ "#666666", 0 }, /* CWM_COLOR_BORDER_INACTIVE */ "#666666", /* CWM_COLOR_BORDER_INACTIVE */
{ "blue", 0 }, /* CWM_COLOR_BORDER_GROUP */ "blue", /* CWM_COLOR_BORDER_GROUP */
{ "red", 0 }, /* CWM_COLOR_BORDER_UNGROUP */ "red", /* CWM_COLOR_BORDER_UNGROUP */
}; };
void void
@ -84,7 +84,7 @@ conf_color(struct conf *c, struct screen_ctx *sc)
int i; int i;
for (i = 0; i < CWM_COLOR_MAX; i++) for (i = 0; i < CWM_COLOR_MAX; i++)
sc->color[i].pixel = xu_getcolor(sc, c->color[i].name); sc->color[i] = xu_getcolor(sc, c->color[i]);
} }
static struct { static struct {
@ -184,7 +184,7 @@ conf_init(struct conf *c)
conf_mousebind(c, m_binds[i].key, m_binds[i].func); conf_mousebind(c, m_binds[i].key, m_binds[i].func);
for (i = 0; i < nitems(color_binds); i++) for (i = 0; i < nitems(color_binds); i++)
c->color[i].name = xstrdup(color_binds[i].name); c->color[i] = xstrdup(color_binds[i]);
for (i = 0; i < nitems(menu_color_binds); i++) for (i = 0; i < nitems(menu_color_binds); i++)
c->menucolor[i] = xstrdup(menu_color_binds[i]); c->menucolor[i] = xstrdup(menu_color_binds[i]);
@ -237,7 +237,7 @@ conf_clear(struct conf *c)
} }
for (i = 0; i < CWM_COLOR_MAX; i++) for (i = 0; i < CWM_COLOR_MAX; i++)
free(c->color[i].name); free(c->color[i]);
free(c->font); free(c->font);
} }

18
parse.y
View File

@ -171,20 +171,20 @@ color : COLOR colors
; ;
colors : ACTIVEBORDER STRING { colors : ACTIVEBORDER STRING {
free(conf->color[CWM_COLOR_BORDER_ACTIVE].name); free(conf->color[CWM_COLOR_BORDER_ACTIVE]);
conf->color[CWM_COLOR_BORDER_ACTIVE].name = $2; conf->color[CWM_COLOR_BORDER_ACTIVE] = $2;
} }
| INACTIVEBORDER STRING { | INACTIVEBORDER STRING {
free(conf->color[CWM_COLOR_BORDER_INACTIVE].name); free(conf->color[CWM_COLOR_BORDER_INACTIVE]);
conf->color[CWM_COLOR_BORDER_INACTIVE].name = $2; conf->color[CWM_COLOR_BORDER_INACTIVE] = $2;
} }
| GROUPBORDER STRING { | GROUPBORDER STRING {
free(conf->color[CWM_COLOR_BORDER_GROUP].name); free(conf->color[CWM_COLOR_BORDER_GROUP]);
conf->color[CWM_COLOR_BORDER_GROUP].name = $2; conf->color[CWM_COLOR_BORDER_GROUP] = $2;
} }
| UNGROUPBORDER STRING { | UNGROUPBORDER STRING {
free(conf->color[CWM_COLOR_BORDER_UNGROUP].name); free(conf->color[CWM_COLOR_BORDER_UNGROUP]);
conf->color[CWM_COLOR_BORDER_UNGROUP].name = $2; conf->color[CWM_COLOR_BORDER_UNGROUP] = $2;
} }
| MENUBG STRING { | MENUBG STRING {
free(conf->menucolor[CWM_COLOR_MENU_BG]); free(conf->menucolor[CWM_COLOR_MENU_BG]);
@ -579,7 +579,7 @@ parse_config(const char *filename, struct conf *xconf)
sizeof(xconf->lockpath)); sizeof(xconf->lockpath));
for (i = 0; i < CWM_COLOR_MAX; i++) for (i = 0; i < CWM_COLOR_MAX; i++)
xconf->color[i].name = conf->color[i].name; xconf->color[i] = conf->color[i];
for (i = 0; i < CWM_COLOR_MENU_MAX; i++) for (i = 0; i < CWM_COLOR_MENU_MAX; i++)
xconf->menucolor[i] = conf->menucolor[i]; xconf->menucolor[i] = conf->menucolor[i];