Remove Format::None
This commit is contained in:
@@ -1267,40 +1267,43 @@ Window &Window::operator<<(const Color &c)
|
|||||||
|
|
||||||
Window &Window::operator<<(Format format)
|
Window &Window::operator<<(Format format)
|
||||||
{
|
{
|
||||||
|
auto increase_flag = [](Window &w, int &flag, auto set) {
|
||||||
|
++flag;
|
||||||
|
(w.*set)(true);
|
||||||
|
};
|
||||||
|
auto decrease_flag = [](Window &w, int &flag, auto set) {
|
||||||
|
if (flag > 0)
|
||||||
|
{
|
||||||
|
--flag;
|
||||||
|
if (flag == 0)
|
||||||
|
(w.*set)(false);
|
||||||
|
}
|
||||||
|
};
|
||||||
switch (format)
|
switch (format)
|
||||||
{
|
{
|
||||||
case Format::None:
|
|
||||||
bold((m_bold_counter = 0));
|
|
||||||
reverse((m_reverse_counter = 0));
|
|
||||||
altCharset((m_alt_charset_counter = 0));
|
|
||||||
break;
|
|
||||||
case Format::Bold:
|
case Format::Bold:
|
||||||
bold(++m_bold_counter);
|
increase_flag(*this, m_bold_counter, &Window::bold);
|
||||||
break;
|
break;
|
||||||
case Format::NoBold:
|
case Format::NoBold:
|
||||||
if (--m_bold_counter <= 0)
|
decrease_flag(*this, m_bold_counter, &Window::bold);
|
||||||
bold((m_bold_counter = 0));
|
|
||||||
break;
|
break;
|
||||||
case Format::Underline:
|
case Format::Underline:
|
||||||
underline(++m_underline_counter);
|
increase_flag(*this, m_underline_counter, &Window::underline);
|
||||||
break;
|
break;
|
||||||
case Format::NoUnderline:
|
case Format::NoUnderline:
|
||||||
if (--m_underline_counter <= 0)
|
decrease_flag(*this, m_underline_counter, &Window::underline);
|
||||||
underline((m_underline_counter = 0));
|
|
||||||
break;
|
break;
|
||||||
case Format::Reverse:
|
case Format::Reverse:
|
||||||
reverse(++m_reverse_counter);
|
increase_flag(*this, m_reverse_counter, &Window::reverse);
|
||||||
break;
|
break;
|
||||||
case Format::NoReverse:
|
case Format::NoReverse:
|
||||||
if (--m_reverse_counter <= 0)
|
decrease_flag(*this, m_reverse_counter, &Window::reverse);
|
||||||
reverse((m_reverse_counter = 0));
|
|
||||||
break;
|
break;
|
||||||
case Format::AltCharset:
|
case Format::AltCharset:
|
||||||
altCharset(++m_alt_charset_counter);
|
increase_flag(*this, m_alt_charset_counter, &Window::altCharset);
|
||||||
break;
|
break;
|
||||||
case Format::NoAltCharset:
|
case Format::NoAltCharset:
|
||||||
if (--m_alt_charset_counter <= 0)
|
decrease_flag(*this, m_alt_charset_counter, &Window::altCharset);
|
||||||
altCharset((m_alt_charset_counter = 0));
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return *this;
|
return *this;
|
||||||
|
|||||||
@@ -195,7 +195,6 @@ enum class TermManip { ClearToEOL };
|
|||||||
|
|
||||||
/// Format flags used by NCurses
|
/// Format flags used by NCurses
|
||||||
enum class Format {
|
enum class Format {
|
||||||
None,
|
|
||||||
Bold, NoBold,
|
Bold, NoBold,
|
||||||
Underline, NoUnderline,
|
Underline, NoUnderline,
|
||||||
Reverse, NoReverse,
|
Reverse, NoReverse,
|
||||||
|
|||||||
Reference in New Issue
Block a user