Fix adding wrong colors module

This commit is contained in:
Paul Nameless 2020-05-05 14:32:04 +08:00
parent 94c4179245
commit 0ce4dc76d6
2 changed files with 52 additions and 24 deletions

View file

@ -1,24 +0,0 @@
import curses
@curses.wrapper
def main(win):
def print_all_colors(attr):
for color in range(-1, curses.COLORS):
try:
curses.init_pair(color, color, 0)
except curses.error:
pass
else:
win.addstr(str(color) + ' ', curses.color_pair(color) | attr)
curses.start_color()
try:
curses.use_default_colors()
except curses.error:
pass
win.addstr("available colors: %d\n\n" % curses.COLORS)
print_all_colors(0)
win.addstr("\n\n")
print_all_colors(curses.A_BOLD)
win.refresh()
win.getch()

52
tg/colors.py Normal file
View file

@ -0,0 +1,52 @@
import curses
DEFAULT_FG = curses.COLOR_WHITE
DEFAULT_BG = curses.COLOR_BLACK
COLOR_PAIRS = {10: 0}
# colors
black = curses.COLOR_BLACK
blue = curses.COLOR_BLUE
cyan = curses.COLOR_CYAN
green = curses.COLOR_GREEN
magenta = curses.COLOR_MAGENTA
red = curses.COLOR_RED
white = curses.COLOR_WHITE
yellow = curses.COLOR_YELLOW
default = -1
# modes
normal = curses.A_NORMAL
bold = curses.A_BOLD
blink = curses.A_BLINK
reverse = curses.A_REVERSE
underline = curses.A_UNDERLINE
invisible = curses.A_INVIS
dim = curses.A_DIM
def get_color(fg, bg):
"""Returns the curses color pair for the given fg/bg combination."""
key = (fg, bg)
if key not in COLOR_PAIRS:
size = len(COLOR_PAIRS)
try:
curses.init_pair(size, fg, bg)
except curses.error:
# If curses.use_default_colors() failed during the initialization
# of curses, then using -1 as fg or bg will fail as well, which
# we need to handle with fallback-defaults:
if fg == -1: # -1 is the "default" color
fg = DEFAULT_FG
if bg == -1: # -1 is the "default" color
bg = DEFAULT_BG
try:
curses.init_pair(size, fg, bg)
except curses.error:
# If this fails too, colors are probably not supported
pass
COLOR_PAIRS[key] = size
return curses.color_pair(COLOR_PAIRS[key])