count number of applied formatting flags

This commit is contained in:
Andrzej Rybczak
2009-04-26 12:33:24 +02:00
parent c7251ebb98
commit 12fa8a9bf6
2 changed files with 18 additions and 10 deletions

View File

@@ -161,7 +161,7 @@ int main(int argc, char *argv[])
wFooter = new Window(0, footer_start_y, COLS, footer_height, "", Config.statusbar_color, brNone); wFooter = new Window(0, footer_start_y, COLS, footer_height, "", Config.statusbar_color, brNone);
wFooter->SetTimeout(ncmpcpp_window_timeout); wFooter->SetTimeout(ncmpcpp_window_timeout);
wFooter->SetGetStringHelper(StatusbarGetStringHelper); wFooter->SetGetStringHelper(StatusbarGetStringHelper);
wFooter->Display(); *wFooter << fmtBold; // bold by default
myScreen = myPlaylist; myScreen = myPlaylist;

View File

@@ -694,30 +694,38 @@ Window &Window::operator<<(Color color)
Window &Window::operator<<(Format format) Window &Window::operator<<(Format format)
{ {
static int bold_num = 0, reverse_num = 0, altcharset_num = 0;
switch (format) switch (format)
{ {
case fmtNone: case fmtNone:
Bold(0); Bold((bold_num = 0));
Reverse(0); Reverse((reverse_num = 0));
AltCharset(0); AltCharset((altcharset_num = 0));
break; break;
case fmtBold: case fmtBold:
Bold(1); Bold(++bold_num);
break; break;
case fmtBoldEnd: case fmtBoldEnd:
Bold(0); // FIXME: No idea why this needs to de disabled at 1 :X
// Probably a mistake somewhere in the code, but for now
// I was not able to find it
if (--bold_num <= 1)
Bold((bold_num = 0));
break; break;
case fmtReverse: case fmtReverse:
Reverse(1); Reverse(++reverse_num);
break; break;
case fmtReverseEnd: case fmtReverseEnd:
Reverse(0); if (--reverse_num <= 0)
Reverse((reverse_num = 0));
break; break;
case fmtAltCharset: case fmtAltCharset:
AltCharset(1); AltCharset(++altcharset_num);
break; break;
case fmtAltCharsetEnd: case fmtAltCharsetEnd:
AltCharset(0); if (--altcharset_num <= 0)
AltCharset((altcharset_num = 0));
break; break;
} }
return *this; return *this;