Replace italics with reversed when the curses module is too old to support it.
This commit is contained in:
parent
9a89ba18e6
commit
a278ee2a8c
3 changed files with 9 additions and 9 deletions
|
@ -466,8 +466,8 @@ def to_curses_attr(color_tuple):
|
||||||
curses_pair = curses_pair | curses.A_BOLD
|
curses_pair = curses_pair | curses.A_BOLD
|
||||||
if 'u' in additional_val:
|
if 'u' in additional_val:
|
||||||
curses_pair = curses_pair | curses.A_UNDERLINE
|
curses_pair = curses_pair | curses.A_UNDERLINE
|
||||||
if 'i' in additional_val and hasattr(curses, 'A_ITALIC'):
|
if 'i' in additional_val:
|
||||||
curses_pair = curses_pair | curses.A_ITALIC
|
curses_pair = curses_pair | (curses.A_ITALIC if hasattr(curses, 'A_ITALIC') else curses.A_REVERSE)
|
||||||
if 'a' in additional_val:
|
if 'a' in additional_val:
|
||||||
curses_pair = curses_pair | curses.A_BLINK
|
curses_pair = curses_pair | curses.A_BLINK
|
||||||
return curses_pair
|
return curses_pair
|
||||||
|
|
|
@ -101,7 +101,7 @@ class Win(object):
|
||||||
if y is not None and x is not None:
|
if y is not None and x is not None:
|
||||||
self.move(y, x)
|
self.move(y, x)
|
||||||
next_attr_char = text.find(FORMAT_CHAR)
|
next_attr_char = text.find(FORMAT_CHAR)
|
||||||
has_italic = hasattr(curses, 'A_ITALIC')
|
attr_italic = curses.A_ITALIC if hasattr(curses, 'A_ITALIC') else curses.A_REVERSE
|
||||||
while next_attr_char != -1 and text:
|
while next_attr_char != -1 and text:
|
||||||
if next_attr_char + 1 < len(text):
|
if next_attr_char + 1 < len(text):
|
||||||
attr_char = text[next_attr_char + 1].lower()
|
attr_char = text[next_attr_char + 1].lower()
|
||||||
|
@ -115,8 +115,8 @@ class Win(object):
|
||||||
self._win.attron(curses.A_UNDERLINE)
|
self._win.attron(curses.A_UNDERLINE)
|
||||||
elif attr_char == 'b':
|
elif attr_char == 'b':
|
||||||
self._win.attron(curses.A_BOLD)
|
self._win.attron(curses.A_BOLD)
|
||||||
elif attr_char == 'i' and has_italic:
|
elif attr_char == 'i':
|
||||||
self._win.attron(curses.A_ITALIC)
|
self._win.attron(attr_italic)
|
||||||
if (attr_char in string.digits
|
if (attr_char in string.digits
|
||||||
or attr_char == '-') and attr_char != '':
|
or attr_char == '-') and attr_char != '':
|
||||||
color_str = text[next_attr_char + 1:text.find(
|
color_str = text[next_attr_char + 1:text.find(
|
||||||
|
@ -132,7 +132,7 @@ class Win(object):
|
||||||
elif char == 'b':
|
elif char == 'b':
|
||||||
self._win.attron(curses.A_BOLD)
|
self._win.attron(curses.A_BOLD)
|
||||||
elif char == 'i' and has_italic:
|
elif char == 'i' and has_italic:
|
||||||
self._win.attron(curses.A_ITALIC)
|
self._win.attron(attr_italic)
|
||||||
else:
|
else:
|
||||||
# this will reset previous bold/uderline sequences if any was used
|
# this will reset previous bold/uderline sequences if any was used
|
||||||
self._win.attroff(curses.A_UNDERLINE)
|
self._win.attroff(curses.A_UNDERLINE)
|
||||||
|
|
|
@ -485,7 +485,7 @@ class Input(Win):
|
||||||
if y is not None and x is not None:
|
if y is not None and x is not None:
|
||||||
self.move(y, x)
|
self.move(y, x)
|
||||||
format_char = find_first_format_char(text, chars)
|
format_char = find_first_format_char(text, chars)
|
||||||
has_italic = hasattr(curses, 'A_ITALIC')
|
attr_italic = curses.A_ITALIC if hasattr(curses, 'A_ITALIC') else curses.A_REVERSE
|
||||||
while format_char != -1:
|
while format_char != -1:
|
||||||
if text[format_char] == '\n':
|
if text[format_char] == '\n':
|
||||||
attr_char = '|'
|
attr_char = '|'
|
||||||
|
@ -501,8 +501,8 @@ class Input(Win):
|
||||||
self._win.attron(curses.A_UNDERLINE)
|
self._win.attron(curses.A_UNDERLINE)
|
||||||
elif attr_char == 'b':
|
elif attr_char == 'b':
|
||||||
self._win.attron(curses.A_BOLD)
|
self._win.attron(curses.A_BOLD)
|
||||||
elif attr_char == 'i' and has_italic:
|
elif attr_char == 'i':
|
||||||
self._win.attron(curses.A_ITALIC)
|
self._win.attron(attr_italic)
|
||||||
elif attr_char in string.digits and attr_char != '':
|
elif attr_char in string.digits and attr_char != '':
|
||||||
self._win.attron(to_curses_attr((int(attr_char), -1)))
|
self._win.attron(to_curses_attr((int(attr_char), -1)))
|
||||||
format_char = find_first_format_char(text, chars)
|
format_char = find_first_format_char(text, chars)
|
||||||
|
|
Loading…
Reference in a new issue