diff options
| author | bakkeby <[email protected]> | 2021-08-25 12:18:01 +0200 |
|---|---|---|
| committer | bakkeby <[email protected]> | 2021-08-25 12:18:01 +0200 |
| commit | 036421845ff585b87304e70e1168f24aab80ccdd (patch) | |
| tree | f3be6db055677330354fae7b996e6ef8bf984b42 /patch/bar_statuscolors.c | |
| parent | c2e4fed9182c84c713b24e6f3c60754c950bcf9b (diff) | |
| download | dwm-flexipatch-036421845ff585b87304e70e1168f24aab80ccdd.tar.gz dwm-flexipatch-036421845ff585b87304e70e1168f24aab80ccdd.zip | |
Adding separate statuscolors bar module ref. #180
Diffstat (limited to 'patch/bar_statuscolors.c')
| -rw-r--r-- | patch/bar_statuscolors.c | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/patch/bar_statuscolors.c b/patch/bar_statuscolors.c index 4ade4df..7ecb049 100644 --- a/patch/bar_statuscolors.c +++ b/patch/bar_statuscolors.c @@ -1,4 +1,56 @@ int +width_statuscolors(Bar *bar, BarArg *a) +{ + #if BAR_STATUSCMD_PATCH + return textw_wosc(rawstext); + #else + return textw_wosc(stext); + #endif // BAR_STATUSCMD_PATCH +} + +#if BAR_EXTRASTATUS_PATCH +int +width_statuscolors_es(Bar *bar, BarArg *a) +{ + #if BAR_STATUSCMD_PATCH + return textw_wosc(rawestext); + #else + return textw_wosc(estext); + #endif // BAR_STATUSCMD_PATCH +} +#endif // BAR_EXTRASTATUS_PATCH + +int +draw_statuscolors(Bar *bar, BarArg *a) +{ + #if BAR_STATUSCMD_PATCH + return draw_wosc(bar, a, rawstext); + #else + return draw_wosc(bar, a, stext); + #endif // BAR_STATUSCMD_PATCH +} + +#if BAR_EXTRASTATUS_PATCH +int +draw_statuscolors_es(Bar *bar, BarArg *a) +{ + #if BAR_STATUSCMD_PATCH + return draw_wosc(bar, a, rawestext); + #else + return draw_wosc(bar, a, estext); + #endif // BAR_STATUSCMD_PATCH +} +#endif // BAR_EXTRASTATUS_PATCH + +#if !BAR_STATUSCMD_PATCH +int +click_statuscolors(Bar *bar, Arg *arg, BarArg *a) +{ + return ClkStatusText; +} +#endif // BAR_STATUSCMD_PATCH + +int textw_wosc(char *s) { char *ts = s; @@ -22,3 +74,29 @@ textw_wosc(char *s) return sw; } +int +draw_wosc(Bar *bar, BarArg *a, char *s) +{ + char *ts = s; + char *tp = s; + int tx = 0; + char ctmp; + + while (1) { + if ((unsigned int)*ts > LENGTH(colors)) { + ts++; + continue; + } + ctmp = *ts; + *ts = '\0'; + drw_text(drw, a->x + tx, a->y, a->w - tx, a->h, 0, tp, 0, True); + tx += TEXTW(tp) - lrpad; + if (ctmp == '\0') + break; + drw_setscheme(drw, scheme[(unsigned int)(ctmp-1)]); + *ts = ctmp; + tp = ++ts; + } + + return 1; +}
\ No newline at end of file |
