我们从Python开源项目中,提取了以下32个代码示例,用于说明如何使用curses.COLOR_YELLOW。
def __init__(self): self.selected_index_stack = [0] self.returnString = "" self.play_in_room = None self.dir = DirBrowse() self.selected_index = 0 self.selected_column = 0 self.window = curses.initscr() curses.start_color() curses.noecho() curses.cbreak() curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLUE) curses.init_pair(2, curses.COLOR_BLACK, curses.COLOR_WHITE) curses.init_pair(3, curses.COLOR_WHITE, curses.COLOR_BLACK) curses.init_pair(4, curses.COLOR_BLUE, curses.COLOR_RED) curses.init_pair(5, curses.COLOR_YELLOW, curses.COLOR_BLUE) self.window.keypad(1) self.draw_ui()
def __init__(self, curses, curses_window): curses.start_color() curses.curs_set(0) curses_window.nodelay(1) curses.init_pair(1, curses.COLOR_RED, curses.COLOR_BLACK) curses.init_pair(2, curses.COLOR_MAGENTA, curses.COLOR_BLACK) curses.init_pair(3, curses.COLOR_YELLOW, curses.COLOR_BLACK) curses.init_pair(4, curses.COLOR_GREEN, curses.COLOR_BLACK) curses.init_pair(5, curses.COLOR_CYAN, curses.COLOR_BLACK) curses.init_pair(6, curses.COLOR_BLUE, curses.COLOR_BLACK) self._curses = curses self._curses_window = curses_window self._stack = list()
def __init__(self, use_colors): logging.Handler.__init__(self) self.use_colors = use_colors # Initialize environment curses.setupterm() # Get the foreground color attribute for this environment self.fcap = curses.tigetstr('setaf') # Get the normal attribute self.COLOR_NORMAL = curses.tigetstr('sgr0').decode("utf-8") # Get + Save the color sequences self.COLOR_INFO = curses.tparm(self.fcap, curses.COLOR_GREEN).decode("utf-8") self.COLOR_ERROR = curses.tparm(self.fcap, curses.COLOR_RED).decode("utf-8") self.COLOR_WARNING = curses.tparm(self.fcap, curses.COLOR_YELLOW).decode("utf-8") self.COLOR_DEBUG = curses.tparm(self.fcap, curses.COLOR_BLUE).decode("utf-8")
def define_colors(self): # set curses color pairs manually curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_WHITE) curses.init_pair(2, curses.COLOR_WHITE, curses.COLOR_BLACK) curses.init_pair(3, curses.COLOR_GREEN, curses.COLOR_BLACK) curses.init_pair(4, curses.COLOR_BLUE, curses.COLOR_BLACK) curses.init_pair(5, curses.COLOR_MAGENTA, curses.COLOR_BLACK) curses.init_pair(6, curses.COLOR_YELLOW, curses.COLOR_BLACK) curses.init_pair(7, curses.COLOR_RED, curses.COLOR_BLACK) curses.init_pair(8, curses.COLOR_CYAN, curses.COLOR_BLACK)
def set_color_pairs(): # based on the colors of pyradio curses.init_pair(1, curses.COLOR_CYAN, curses.COLOR_BLACK) curses.init_pair(2, curses.COLOR_BLUE, curses.COLOR_BLACK) curses.init_pair(3, curses.COLOR_YELLOW, curses.COLOR_BLACK) curses.init_pair(4, curses.COLOR_GREEN, curses.COLOR_BLACK) curses.init_pair(5, curses.COLOR_WHITE, curses.COLOR_BLACK) curses.init_pair(6, curses.COLOR_BLACK, curses.COLOR_MAGENTA) curses.init_pair(7, curses.COLOR_BLACK, curses.COLOR_GREEN) curses.init_pair(8, curses.COLOR_MAGENTA, curses.COLOR_BLACK) curses.init_pair(9, curses.COLOR_BLACK, curses.COLOR_GREEN)
def init_colors(self): curses.start_color() curses.use_default_colors() colors = [ curses.COLOR_BLUE, curses.COLOR_CYAN, curses.COLOR_GREEN, curses.COLOR_MAGENTA, curses.COLOR_RED, curses.COLOR_WHITE, curses.COLOR_YELLOW ] curses.init_pair(0, curses.COLOR_WHITE, curses.COLOR_BLACK) for i, c in enumerate(colors): curses.init_pair(i + 1, c, curses.COLOR_BLACK)
def __init__(self, arena_size): self.arena_size = arena_size self.max_moves = int(25*(2*arena_size*COLORS)/(28*6)) self.screen = curses.initscr() curses.noecho() curses.cbreak() curses.start_color() try: curses.curs_set(False) except curses.error: pass self.screen.nodelay(True) self.window_size = self.screen.getmaxyx() if self.window_size[0] < self.arena_size+4 or self.window_size[1] < self.arena_size*2: print('Your screen is too short!') exit() curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLUE) curses.init_pair(2, curses.COLOR_WHITE, curses.COLOR_GREEN) curses.init_pair(3, curses.COLOR_WHITE, curses.COLOR_CYAN) curses.init_pair(4, curses.COLOR_WHITE, curses.COLOR_RED) curses.init_pair(5, curses.COLOR_WHITE, curses.COLOR_MAGENTA) curses.init_pair(6, curses.COLOR_WHITE, curses.COLOR_YELLOW) curses.init_pair(7, curses.COLOR_WHITE, curses.COLOR_WHITE) self.offset_x = int((self.window_size[1]-2*self.arena_size)/2) self.offset_y = int((self.window_size[0]-self.arena_size)/2) self.moves_position=[ self.offset_y+self.arena_size+1, self.offset_x+self.arena_size-5 ] self.arena_initialize() self.screen.addstr( self.offset_y-2, self.offset_x, self.title, curses.color_pair(0)) self.screen.addstr( self.offset_y-2, self.offset_x+2*self.arena_size-17, "Press '?' to help", curses.color_pair(0))
def __init__(self): self.notification_count = 0 self.window = curses.initscr() curses.start_color() curses.noecho() curses.cbreak() curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLUE) curses.init_pair(2, curses.COLOR_BLACK, curses.COLOR_WHITE) curses.init_pair(3, curses.COLOR_WHITE, curses.COLOR_BLACK) curses.init_pair(4, curses.COLOR_WHITE, curses.COLOR_RED) curses.init_pair(5, curses.COLOR_YELLOW, curses.COLOR_BLUE) self.window.keypad(1) self.draw_ui()
def __init__(self, ticks, silent, debug, compat_debug, debug_lines, autostep_debug, head): super().__init__() self.ticks = ticks self.silent = silent self.debug = debug self.compat_debug = compat_debug self.debug_lines = debug_lines self.autostep_debug = autostep_debug self.head = head self.tick_number = 0 self.output_count = 0 if self.debug and not self.compat_debug: self.logging_loc = 0 self.logging_x = 1 self.stdscr = curses.initscr() curses.start_color() curses.init_pair(1, curses.COLOR_RED, curses.COLOR_BLACK) curses.init_pair(2, curses.COLOR_GREEN, curses.COLOR_BLACK) curses.init_pair(3, curses.COLOR_YELLOW, curses.COLOR_BLACK) curses.init_pair(4, curses.COLOR_BLUE, curses.COLOR_BLACK) curses.noecho() curses.curs_set(False) self.win_program = curses.newwin(self.debug_lines, curses.COLS - 1, 0, 0) self.logging_pad = curses.newpad(1000, curses.COLS - 1) def signal_handler(signal, frame): self.on_finish() sys.exit(0) signal.signal(signal.SIGINT, signal_handler)
def __init__(self): self.screen = curses.initscr() self.screen.timeout(100) # the screen refresh every 100ms # charactor break buffer curses.cbreak() self.screen.keypad(1) self.netease = NetEase() curses.start_color() if Config().get_item('curses_transparency'): curses.use_default_colors() curses.init_pair(1, curses.COLOR_GREEN, -1) curses.init_pair(2, curses.COLOR_CYAN, -1) curses.init_pair(3, curses.COLOR_RED, -1) curses.init_pair(4, curses.COLOR_YELLOW, -1) else: curses.init_pair(1, curses.COLOR_GREEN, curses.COLOR_BLACK) curses.init_pair(2, curses.COLOR_CYAN, curses.COLOR_BLACK) curses.init_pair(3, curses.COLOR_RED, curses.COLOR_BLACK) curses.init_pair(4, curses.COLOR_YELLOW, curses.COLOR_BLACK) # term resize handling size = terminalsize.get_terminal_size() self.x = max(size[0], 10) self.y = max(size[1], 25) self.startcol = int(float(self.x) / 5) self.indented_startcol = max(self.startcol - 3, 0) self.update_space() self.lyric = '' self.now_lyric = '' self.tlyric = '' self.storage = Storage() self.config = Config() self.newversion = False
def star(): treescrn2.attrset(curses.A_BOLD | curses.A_BLINK) set_color(treescrn2, curses.COLOR_YELLOW) treescrn2.addch(0, 12, ord('*')) treescrn2.standend() unset_color(treescrn2) treescrn2.refresh() w_del_msg.refresh() return
def setup_colors(): """Setup the colors for each player. Entry 8 is reserved for zero-strength unowned squares. """ curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_WHITE) curses.init_pair(2, curses.COLOR_BLACK, curses.COLOR_RED) curses.init_pair(3, curses.COLOR_BLACK, curses.COLOR_BLUE) curses.init_pair(4, curses.COLOR_BLACK, curses.COLOR_GREEN) curses.init_pair(5, curses.COLOR_BLACK, curses.COLOR_MAGENTA) curses.init_pair(6, curses.COLOR_BLACK, curses.COLOR_CYAN) curses.init_pair(7, curses.COLOR_BLACK, curses.COLOR_YELLOW) curses.init_pair(8, curses.COLOR_WHITE, curses.COLOR_BLACK)
def init_colors(): """ Init the colors for the screen """ curses.use_default_colors() # Colors we use for messages, etc curses.init_pair(1, curses.COLOR_GREEN, curses.COLOR_BLACK) curses.init_pair(2, curses.COLOR_GREEN, curses.COLOR_BLACK) curses.init_pair(3, curses.COLOR_CYAN, curses.COLOR_BLACK) curses.init_pair(4, curses.COLOR_YELLOW, curses.COLOR_BLACK) curses.init_pair(5, curses.COLOR_GREEN, curses.COLOR_BLACK) curses.init_pair(6, curses.COLOR_BLACK, curses.COLOR_WHITE) curses.init_pair(7, curses.COLOR_RED, curses.COLOR_BLACK) curses.init_pair(8, curses.COLOR_WHITE, curses.COLOR_WHITE) colors['white'] = curses.color_pair(1) colors['green'] = curses.color_pair(2) colors['cyan'] = curses.color_pair(3) colors['yellow'] = curses.color_pair(4) colors['green-black'] = curses.color_pair(5) colors['black-white'] = curses.color_pair(6) colors['red'] = curses.color_pair(7) colors['white-white'] = curses.color_pair(8) # Allocate colour ranges here for the ma display. maprange = 10 for i in range(curses.COLORS - maprange): curses.init_pair(i + maprange, 0, i)
def screen_curses_init(): # # number of milliseconds to wait after reading an escape character, to # distinguish between an individual escape character entered on the # keyboard from escape sequences sent by cursor and function keys (see # curses(3X). os.putenv("ESCDELAY", "0") # was 25 # global STDSCR STDSCR = curses.initscr() curses.noecho() curses.cbreak() # if not curses.has_colors(): raise Exception("Need colour support to run.") curses.raw() # curses.start_color() # # This is what allows us to use -1 for default when we initialise # the pairs curses.use_default_colors() # curses.init_pair(PROFILE_GREY , curses.COLOR_WHITE , -1) curses.init_pair(PROFILE_WHITE , curses.COLOR_WHITE , -1) curses.init_pair(PROFILE_RED , curses.COLOR_RED , -1) curses.init_pair(PROFILE_VERMILION , curses.COLOR_RED , -1) curses.init_pair(PROFILE_ORANGE , curses.COLOR_RED , -1) curses.init_pair(PROFILE_AMBER , curses.COLOR_YELLOW , -1) curses.init_pair(PROFILE_YELLOW , curses.COLOR_YELLOW , -1) curses.init_pair(PROFILE_CHARTREUSE , curses.COLOR_GREEN , -1) curses.init_pair(PROFILE_GREEN , curses.COLOR_GREEN , -1) curses.init_pair(PROFILE_TEAL , curses.COLOR_CYAN , -1) curses.init_pair(PROFILE_BLUE , curses.COLOR_BLUE , -1) curses.init_pair(PROFILE_VIOLET , curses.COLOR_MAGENTA , -1) curses.init_pair(PROFILE_PURPLE , curses.COLOR_MAGENTA , -1) curses.init_pair(PROFILE_MAGENTA , curses.COLOR_MAGENTA , -1) curses.init_pair(PROFILE_BLACK_INFO , curses.COLOR_BLACK , curses.COLOR_WHITE) curses.init_pair(PROFILE_ALARM, curses.COLOR_RED , curses.COLOR_WHITE)
def start_screen(self): self.screen = curses.initscr() curses.noecho() curses.cbreak() curses.curs_set(0) self.screen.keypad(True) curses.start_color() curses.use_default_colors() curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLUE) curses.init_pair(2, curses.COLOR_GREEN, -1) curses.init_pair(3, curses.COLOR_CYAN, -1) curses.init_pair(4, curses.COLOR_YELLOW, -1) return None
def __init__(self): """ Initialization """ dict.__init__(self, { 'NORMAL': '', 'BOLD': '', 'ERASE': '\n', 'RED': '', 'YELLOW': '', 'GREEN': '', }) try: import curses as _curses except ImportError: # fixup if a submodule of curses failed. if 'curses' in _sys.modules: del _sys.modules['curses'] else: try: _curses.setupterm() except (TypeError, _curses.error): pass else: def make_color(color): """ Make color control string """ seq = _curses.tigetstr('setaf') if seq is not None: seq = _curses.tparm(seq, color) return seq self['NORMAL'] = _curses.tigetstr('sgr0') self['BOLD'] = _curses.tigetstr('bold') erase = _curses.tigetstr('el1') if erase is not None: self['ERASE'] = erase + _curses.tigetstr('cr') self['RED'] = make_color(_curses.COLOR_RED) self['YELLOW'] = make_color(_curses.COLOR_YELLOW) self['GREEN'] = make_color(_curses.COLOR_GREEN)
def print_stock_data(col, row, data, title, scr_main, scr_strip, cursor_row, change_amount, scr_dim): scr_strip.addstr(0, col+10, title) data_length = len(str(data)) spaces_length = 9 - data_length n = 0 if col+10+18 > scr_dim[1]: spaces_length = spaces_length + scr_dim[1] - col-10-9 while n < spaces_length: data = data + " " n = n + 1 curses.start_color() curses.init_pair(8, curses.COLOR_BLACK, curses.COLOR_RED) curses.init_pair(9, curses.COLOR_BLACK, curses.COLOR_GREEN) curses.init_pair(10, curses.COLOR_BLACK, curses.COLOR_YELLOW) curses.init_pair(11, curses.COLOR_RED, curses.COLOR_BLACK) curses.init_pair(12, curses.COLOR_GREEN, curses.COLOR_BLACK) curses.init_pair(13, curses.COLOR_YELLOW, curses.COLOR_BLACK) if cursor_row == 1: if change_amount == -1: scr_main.addstr(row, col, data, curses.color_pair(8)) elif change_amount == 1: scr_main.addstr(row, col, data, curses.color_pair(9)) else: scr_main.addstr(row, col, data, curses.color_pair(10)) else: if change_amount == -1: scr_main.addstr(row, col, data, curses.color_pair(11)) elif change_amount == 1: scr_main.addstr(row, col, data, curses.color_pair(12)) else: scr_main.addstr(row, col, data, curses.color_pair(13))
def print_permanents(scr_top, perm, row, col, perm_data, scr_dim): if perm == "GC=F": perm = "Gold" elif perm == "SI=F": perm = "Silver" elif perm == "HG=F": perm = "Copper" elif perm == "CL=F": perm = "Crude" elif perm[-2:] == "=X": perm = perm[0:3] + "/" + perm[3:6] elif perm[0] == "^": perm = perm[1:] curses.start_color() curses.init_pair(20, curses.COLOR_GREEN, curses.COLOR_BLACK) curses.init_pair(21, curses.COLOR_YELLOW, curses.COLOR_BLACK) curses.init_pair(22, curses.COLOR_RED, curses.COLOR_BLACK) try: printing_perm = str(perm) + "=" + str(perm_data["price"]) except: printing_perm = str(perm) + "=N/A" perm_length = len(printing_perm) + 1 if perm_length+col < scr_dim[1]: if perm_data["change"] != "N/A": if float(perm_data["change"]) >= 0.5: scr_top.addstr(1+row, col, str(printing_perm), curses.color_pair(20)) if float(perm_data["change"]) <= -0.5: scr_top.addstr(1+row, col, str(printing_perm), curses.color_pair(22)) else: scr_top.addstr(1+row, col, str(printing_perm), curses.color_pair(21)) else: scr_top.addstr(1+row, col, str(printing_perm)) return perm_length
def __init__(self): self.screen = curses.initscr() self.screen.timeout(100) # the screen refresh every 100ms # charactor break buffer curses.cbreak() self.screen.keypad(1) self.netease = NetEase() curses.start_color() curses.init_pair(1, curses.COLOR_GREEN, curses.COLOR_BLACK) curses.init_pair(2, curses.COLOR_CYAN, curses.COLOR_BLACK) curses.init_pair(3, curses.COLOR_RED, curses.COLOR_BLACK) curses.init_pair(4, curses.COLOR_YELLOW, curses.COLOR_BLACK) # term resize handling size = terminalsize.get_terminal_size() self.x = max(size[0], 10) self.y = max(size[1], 25) self.startcol = int(float(self.x) / 5) self.indented_startcol = max(self.startcol - 3, 0) self.update_space() self.lyric = '' self.now_lyric = '' self.tlyric = '' self.storage = Storage() self.config = Config() self.newversion = False
def parse_args(): parser = argparse.ArgumentParser() # parser.add_argument('-a', '--abs', action='store_true') parser.add_argument('abs_rel', choices=['at', 'after']) font_choices = [font.split('.')[0] for font in os.listdir('/usr/share/figlet') if font.split('.')[1] == 'tlf'] parser.add_argument('-f', '--font', default=DEFAULT_FONT, choices=font_choices) parser.add_argument('-m', '--msg', default=None) # parser.add_argument('-z', '--snooze', type=float, default=2) parser_volume = parser.add_mutually_exclusive_group() parser_song = parser_volume.add_argument_group() parser_song.add_argument('-d', '--dir', default=DEFAULT_MUSIC_DIR) parser_song.add_argument('--song', default=DEFAULT_SONG) parser_volume.add_argument('-ns', '--silent', action='store_true') parser.add_argument('-fg', choices=['black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white'], default='white') parser.add_argument('-bg', choices=['black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white'], default='black') parser.add_argument('time', nargs='+') args = parser.parse_args() args.abs = False if args.abs_rel == 'after' else True if not args.silent: args.song = validate_song(args) args.time = ' '.join(args.time) color_mapping = { 'black': curses.COLOR_BLACK, 'red': curses.COLOR_RED, 'green': curses.COLOR_GREEN, 'yellow': curses.COLOR_YELLOW, 'blue': curses.COLOR_BLUE, 'magenta': curses.COLOR_MAGENTA, 'cyan': curses.COLOR_CYAN, 'white': curses.COLOR_WHITE, } args.fg = color_mapping[args.fg] args.bg = color_mapping[args.bg] return args
def defineColors(): curses.start_color() curses.use_default_colors() curses.init_pair(color.BLACK, curses.COLOR_BLACK, -1) curses.init_pair(color.GREY, 250, -1) curses.init_pair(color.RED, curses.COLOR_RED, -1) curses.init_pair(color.YELLOW, 143, -1) curses.init_pair(color.BLUE, curses.COLOR_BLUE, -1) # highlight text curses.init_pair(color.RED_H, curses.COLOR_RED, curses.COLOR_WHITE) curses.init_pair(color.YELLOW_H, curses.COLOR_YELLOW, curses.COLOR_WHITE)
def run(self): """ """ self.setup() # Clear screen self.screen.clear() # curses.start_color() curses.init_pair(1, curses.COLOR_CYAN, curses.COLOR_BLACK) curses.init_pair(2, curses.COLOR_GREEN, curses.COLOR_BLACK) curses.init_pair(3, curses.COLOR_MAGENTA, curses.COLOR_BLACK) curses.init_pair(4, curses.COLOR_YELLOW, curses.COLOR_BLACK) curses.init_pair(5, curses.COLOR_RED, curses.COLOR_BLACK) curses.init_pair(6, curses.COLOR_WHITE, curses.COLOR_BLACK) while True: # session.expire_all() # TODO: Add some standard header to the top? (like interval time etc) # self.render() # self.increment.reset() # self.screen.refresh() # time.sleep(self.interval) self.running += self.interval return
def setup_palette(): curses.init_pair(1, curses.COLOR_BLUE, curses.COLOR_BLACK) curses.init_pair(2, curses.COLOR_GREEN, curses.COLOR_BLACK) curses.init_pair(3, curses.COLOR_YELLOW, curses.COLOR_BLACK)
def getStats(scr): curses.init_pair(9, curses.COLOR_WHITE, curses.COLOR_BLACK) curses.init_pair(10, curses.COLOR_YELLOW, curses.COLOR_BLACK) curses.init_pair(11, curses.COLOR_RED, curses.COLOR_BLACK) curses.init_pair(12, curses.COLOR_GREEN, curses.COLOR_BLACK) (maxY, maxX) = scr.getmaxyx() while 1: try: display_time(scr) display_loadavg(scr) display_header(scr) #write(scr, 3, 0, '%-4s %-20s %-15s %-40s%s' % ('Slot', 'Remote Host', 'State', 'Filename', ' '*(maxX-83)), curses.A_BOLD) cnt = 5 try: for i in os.listdir(DISTCC_DIR+'/state'): data = struct.unpack('@iLL128s128siiP', open(DISTCC_DIR+'/state/'+i).readline().strip()) file = data[3].split('\x00')[0] or 'None' host = data[4].split('\x00')[0] or 'None' slot = int(data[5]) stte = states[int(data[6])] scr.move(cnt,0) scr.clrtoeol() if 'None' not in (file, host): write(scr, cnt, 0, '%s' % slot, curses.color_pair(9)) write(scr, cnt, 5, '%s' % host, curses.color_pair(9)) if int(data[6]) in (2,3): write(scr, cnt, 25, '%s ' % (stte), curses.color_pair(10)) elif int(data[6]) in (0,1): write(scr, cnt, 25, '%s ' % (stte), curses.color_pair(11)) elif int(data[6]) in (4,5): write(scr, cnt, 25, '%s ' % (stte), curses.color_pair(12)) elif int(data[6]) in (6,7): write(scr, cnt, 25, '%s ' % (stte), curses.color_pair(12)|curses.A_BOLD) else: write(scr, cnt, 25, '%s ' % (stte)) write(scr, cnt, 45, '%s' % file, curses.color_pair(9)) cnt += 1 except struct.error: pass except IOError: pass scr.refresh() time.sleep(0.75) scr.erase() scr.move(0,0) except KeyboardInterrupt: sys.exit(-1)
def using_curses(func): def inner(*largs, **kwargs): """ Calls decorated function with initial curses screen inserted as first argument. Content mostly taken from curses.wrapper, modified to function as a decorator, and to introduce cursor removal """ try: # Initialize curses stdscr = curses.initscr() # Turn off echoing of keys, and enter cbreak mode, # where no buffering is performed on keyboard input curses.noecho() curses.cbreak() # In keypad mode, escape sequences for special keys # (like the cursor keys) will be interpreted and # a special value like curses.KEY_LEFT will be returned stdscr.keypad(1) # Start color, too. Harmless if the terminal doesn't have # color; user can test with has_color() later on. The try/catch # works around a minor bit of over-conscientiousness in the curses # module -- the error return from C start_color() is ignorable. try: curses.start_color() curses.use_default_colors() except: pass # Set colour pallet curses.init_pair(CPI_GOOD, curses.COLOR_GREEN, -1) curses.init_pair(CPI_ERROR, curses.COLOR_RED, -1) curses.init_pair(CPI_WARNING, curses.COLOR_YELLOW, -1) # Remove blinking cursor curses.curs_set(0) func(stdscr, *largs, **kwargs) finally: # Set everything back to normal if 'stdscr' in locals(): curses.curs_set(1) stdscr.keypad(0) curses.echo() # revert curses.noecho() curses.nocbreak() # revert curses.cbreak() curses.endwin() return inner # ================== Status (header) Window ==================
def __init__(self): """ Initialization """ dict.__init__(self, { 'NORMAL': '', 'BOLD': '', 'ERASE': '\n', 'RED': '', 'YELLOW': '', 'GREEN': '', }) try: import curses as _curses except ImportError: # fixup if a submodule of curses failed. if 'curses' in _sys.modules: del _sys.modules['curses'] else: try: _curses.setupterm() except (TypeError, _curses.error): pass else: try: _curses.tigetstr('sgr0') except TypeError: # pypy3 # pylint: disable = invalid-name bc = lambda val: val.encode('ascii') else: bc = lambda val: val # pylint: disable = invalid-name def make_color(color): """ Make color control string """ seq = _curses.tigetstr(bc('setaf')) if seq is not None: seq = _curses.tparm(seq, color).decode('ascii') return seq self['NORMAL'] = _curses.tigetstr(bc('sgr0')).decode('ascii') self['BOLD'] = _curses.tigetstr(bc('bold')).decode('ascii') erase = _curses.tigetstr(bc('el1')).decode('ascii') if erase is not None: self['ERASE'] = erase + \ _curses.tigetstr(bc('cr')).decode('ascii') self['RED'] = make_color(_curses.COLOR_RED) self['YELLOW'] = make_color(_curses.COLOR_YELLOW) self['GREEN'] = make_color(_curses.COLOR_GREEN)
def draw(self,screen): help_string1 = '(W)Up (S)Down (A)Left (D)Right' help_string2 = ' (R)Restart (Q)Exit' gameover_string = ' GAME OVER' win_string = ' YOU WIN!' def cast(string): screen.addstr(string + "\n") def cast_pawn(string): curses.init_pair(1, curses.COLOR_RED, curses.COLOR_WHITE) curses.init_pair(2, curses.COLOR_GREEN, curses.COLOR_WHITE) curses.init_pair(3, curses.COLOR_YELLOW, curses.COLOR_WHITE) curses.init_pair(4, curses.COLOR_BLACK, curses.COLOR_WHITE) word_list = string.split() for element in word_list: if element in "0123456789": if int(element) == 2: screen.addstr(element,curses.color_pair(1)) elif int(element) == 4: screen.addstr(element,curses.color_pair(2)) elif int(element) == 8: screen.addstr(element,curses.color_pair(3)) else: screen.addstr(element,curses.color_pair(4)) else: screen.addstr(element) screen.addstr("\n") def draw_hor_separator(): line = "+" + ("+------" * self.width + "+")[1:] separator = defaultdict(lambda:line) if not hasattr(draw_hor_separator,"counter"): draw_hor_separator.counter = 0 cast(separator[draw_hor_separator.counter]) draw_hor_separator.counter += 1 def draw_row(row): cast_pawn(''.join('|{: ^5} '.format(num) if num > 0 else '| ' for num in row) + '|') screen.clear() cast("SCORE: " + str(self.score)) if 0 != self.high_score: cast("HIGH SCORE " + str(self.high_score)) for row in self.field: draw_hor_separator() draw_row(row) draw_hor_separator() if self.is_win(): cast(win_string) else: if self.is_gameover(): cast(gameover_string) else: cast(help_string1) cast(help_string2)
def __init__(self, env, ticks, silent, debug, compat_debug, debug_lines, autostep_debug, output_limit): """ :param dots.environment.Env env: The env of the interpreter :param int ticks: The max number of ticks for the program :param bool silent: True to turn off all outputs :param bool debug: True to show the execution of the program :param bool compat_debug: True to show the debug with only builtin functions :param int debug_lines: The number of lines to show the debug :param float autostep_debug: The timebetween automatic ticks. 0 disables the auto ticks. :param int output_limit: The max number of outputs for the program """ super().__init__(env) # if it is zero or false, we don't want to stop self.ticks_left = ticks or float('inf') self.outputs_left = output_limit or float('inf') self.silent = silent self.debug = debug self.compat_debug = compat_debug self.debug_lines = debug_lines self.debug_cols = terminalsize.get_terminal_size()[0] - 1 self.autostep_debug = autostep_debug self.compat_logging_buffer = '' self.compat_logging_buffer_lines = terminal_lines - debug_lines - 1 self.first_tick = True if self.debug and not self.compat_debug: self.logging_loc = 0 self.logging_x = 1 self.stdscr = curses.initscr() curses.start_color() curses.init_pair(1, curses.COLOR_RED, curses.COLOR_BLACK) curses.init_pair(2, curses.COLOR_GREEN, curses.COLOR_BLACK) curses.init_pair(3, curses.COLOR_YELLOW, curses.COLOR_BLACK) curses.init_pair(4, curses.COLOR_BLUE, curses.COLOR_BLACK) curses.noecho() # hides the cursor curses.curs_set(False) # defining the two main parts of the screen: the view of the program self.win_program = curses.newwin(self.debug_lines, curses.COLS, 0, 0) # and pad for the output of the prog self.logging_pad = curses.newpad(1000, curses.COLS - 1) def signal_handler(signal, frame): self.on_finish() sys.exit(0) signal.signal(signal.SIGINT, signal_handler)