diff options
| author | iamcheeseman <[hidden email]> | 2026-03-01 17:41:42 -0500 |
|---|---|---|
| committer | iamcheeseman <[hidden email]> | 2026-03-01 17:41:42 -0500 |
| commit | 2b79dc291a51e774a5e00ee92ec5b733d6ba24a4 (patch) | |
| tree | 14cbf7568fa69ee57d84d123065cd4094550478a /src/bardata.c | |
| parent | 99806a7680e3aa628b242e188e9ee942e2f78e88 (diff) | |
why, mener, why
Diffstat (limited to 'src/bardata.c')
| -rw-r--r-- | src/bardata.c | 40 |
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; } |
