You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
1.7 KiB
102 lines
1.7 KiB
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; |
|
char *tp = s; |
|
int sw = 0; |
|
char ctmp; |
|
while (1) { |
|
if ((unsigned int)*ts > LENGTH(colors)) { |
|
ts++; |
|
continue; |
|
} |
|
ctmp = *ts; |
|
*ts = '\0'; |
|
sw += drw_fontset_getwidth(drw, tp, True); |
|
*ts = ctmp; |
|
if (ctmp == '\0') |
|
break; |
|
tp = ++ts; |
|
} |
|
|
|
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; |
|
} |