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
3 years ago
|
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;
|
||
|
}
|