aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bardata.c40
1 files changed, 26 insertions, 14 deletions
diff --git a/src/bardata.c b/src/bardata.c
index 9742385..43e8443 100644
--- a/src/bardata.c
+++ b/src/bardata.c
@@ -25,8 +25,11 @@ comp_t *find_comp(char *name) {
}
}
- strcpy(comps[comps_size++].name, name);
- return &comps[comps_size - 1];
+ comp_t *comp = &comps[comps_size++];
+ strcpy(comp->name, name);
+ comp->fg = default_fg;
+ comp->bg = default_bg;
+ return comp;
}
void add_component(comp_side_t side, char *name) {
@@ -48,6 +51,22 @@ void add_component(comp_side_t side, char *name) {
}
}
+color_t parse_color(const char* col_str) {
+ color_t col = {0};
+
+ if (col_str[0] == '#') {
+ col_str++;
+ }
+
+ col.pixel = strtol(col_str, NULL, 16);
+ col.color.red = (col.pixel >> 16) & 0xFF;
+ col.color.green = (col.pixel >> 8) & 0xFF;
+ col.color.blue = (col.pixel) & 0xFF;
+ col.color.alpha = 255;
+
+ return col;
+}
+
void set_component(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) {
comp_t* comp = find_comp(argv[1]);
@@ -57,6 +76,11 @@ void set_component(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) {
i++;
continue;
}
+ if (strcmp(argv[i], "-fg") == 0) {
+ const char* col_str = argv[++i];
+ comp->fg = parse_color(col_str);
+ continue;
+ }
}
}
@@ -96,18 +120,6 @@ color_t parse_color(const char* col_str) {
col.color.blue = (col.pixel) & 0xFF;
col.color.alpha = 255;
- printf(
- "%lx %lx %lx %lx %d %d %d %d\n",
- col.pixel,
- col.pixel >> 16 & 0xFF,
- col.pixel >> 8 & 0xFF,
- col.pixel & 0xFF,
- col.color.red,
- col.color.green,
- col.color.blue,
- col.color.alpha
- );
-
return col;
}