Пример #1
0
 def init_display(self):
     self.max_y, self.max_x = self.screen.getmaxyx()
     self.lines = [""]*(self.max_y - 1)
     self.prev_lines = [""]*(self.max_y - 1)
     curses.noecho()
     curses.nonl()
     curses.cbreak()
     curses.typeahead(-1)
     curses.curs_set(0)
     self.screen.attron(curses.A_REVERSE)
Пример #2
0
 def _initscr_plus(self):
     self._scr = curses.initscr()
     self._max_y, self._max_x = self._scr.getmaxyx()
     curses.noecho()
     curses.nonl()
     curses.cbreak()
     curses.typeahead(-1)
     curses.curs_set(0)
     # in case curses has other ideas
     fcntl.fcntl(0, fcntl.F_SETFL, os.O_NONBLOCK)
Пример #3
0
 def _initscr_plus(self):
     self._scr = curses.initscr()
     self._max_y, self._max_x = self._scr.getmaxyx()
     curses.noecho()
     curses.nonl()
     curses.cbreak()
     curses.typeahead(-1)
     curses.curs_set(0)
     # in case curses has other ideas
     fcntl.fcntl(0, fcntl.F_SETFL, os.O_NONBLOCK)
Пример #4
0
    def curses_setup(self):
        if self.in_readline:
            self.pseudo_input_box.keypad(0)
            self.curs_set(1)
        elif self.pseudo_input_box:
            self.pseudo_input_box.nodelay(1)
            self.pseudo_input_box.keypad(1)
            self.curs_set(0)
        else:
            self.curs_set(0)

        try:
            curses.cbreak()
            curses.noecho()
            curses.start_color()
            curses.use_default_colors()
            curses.typeahead(-1)
            curses.halfdelay(5)
        except Exception as e:
            log.error("Curses setup failed: %s" % e.msg)
            return -1

        self.height, self.width = self.stdscr.getmaxyx()
        self.height = int(self.height)
        self.width = int(self.width)

        color_conf = self.callbacks["get_opt"]("color")

        for i in range(0, curses.COLOR_PAIRS):
            if str(i) not in color_conf:
                continue

            color = color_conf[str(i)]

            if type(color) == int:
                fg = color
                bg = color_conf['defbg']
            else:
                if 'fg' in color:
                    fg = color['fg']
                else:
                    fg = color_conf['deffg']

                if 'bg' in color:
                    bg = color['bg']
                else:
                    bg = color_conf['defbg']

            try:
                curses.init_pair(i, fg, bg)
                log.debug("color pair %s : %s %s", i, fg, bg)
            except:
                log.debug("color pair failed!: %d fg: %d bg: %d", i + 1, fg,
                          bg)
        return 0
Пример #5
0
    def curses_setup(self):
        if self.in_readline:
            self.pseudo_input_box.keypad(0)
            self.curs_set(1)
        elif self.pseudo_input_box:
            self.pseudo_input_box.nodelay(1)
            self.pseudo_input_box.keypad(1)
            self.curs_set(0)
        else:
            self.curs_set(0)

        try:
            curses.cbreak()
            curses.noecho()
            curses.start_color()
            curses.use_default_colors()
            curses.typeahead(-1)
            curses.halfdelay(5)
        except Exception as e:
            log.error("Curses setup failed: %s" % e.msg)
            return -1

        self.height, self.width = self.stdscr.getmaxyx()
        self.height = int(self.height)
        self.width = int(self.width)

        color_conf = self.callbacks["get_opt"]("color")

        for i in range(0, curses.COLOR_PAIRS):
            if str(i) not in color_conf:
                continue

            color = color_conf[str(i)]

            if type(color) == int:
                fg = color
                bg = color_conf['defbg']
            else:
                if 'fg' in color:
                    fg = color['fg']
                else:
                    fg = color_conf['deffg']

                if 'bg' in color:
                    bg = color['bg']
                else:
                    bg = color_conf['defbg']

            try:
                curses.init_pair(i, fg, bg)
                log.debug("color pair %s : %s %s", i, fg, bg)
            except:
                log.debug("color pair failed!: %d fg: %d bg: %d", 
                        i + 1, fg, bg)
        return 0
Пример #6
0
def main(scr):
    curses.curs_set(False)
    curses.noecho()
    curses.start_color()
    curses.use_default_colors()
    curses.typeahead(-1)

    state = "list"
    list_scroll = 0
    list_selected = 0
    list_width = 64
    tab_scroll = -1
    hasrunonce = False
    refresh = True

    while True:
        if not hasrunonce or refresh:
            songs = os.listdir("tabs")
            song = loadSong(songs[list_selected])
            refresh = False
        currentx = 0
        listWin = None
        if curses.COLS > list_width or state == "list":
            currentx = min(list_width, curses.COLS)
            listWin = draw_list(scr, curses.LINES - 2, currentx, 1, 2, songs,
                                list_scroll, list_selected, state == "list")

            splitter = curses.newwin(curses.LINES, 5, 0, currentx)
            splitter.vline(0, 2, "|", curses.LINES)
            splitter.refresh()
            currentx += 5

        tabWin = draw_tab(scr, curses.LINES, curses.COLS - currentx, 0,
                          currentx, song, tab_scroll, state == "tab")
        scr.refresh()

        if hasrunonce:
            key = scr.getkey()
            if key == "q":
                break
            if key == "+":
                list_width = max(1, list_width + 1)
            if key == "-":
                list_width = max(1, list_width - 1)
            if state == "list":
                list_scroll, list_selected, state, refresh = key_list(
                    key, list_scroll, list_selected, list_width, curses.LINES,
                    state, len(songs))
            elif state == "tab":
                tab_scroll, state = key_tab(key, tab_scroll, state)
        hasrunonce = True
Пример #7
0
def module_funcs(stdscr):
    "Test module-level functions"

    for func in [curses.baudrate, curses.beep, curses.can_change_color,
                 curses.cbreak, curses.def_prog_mode, curses.doupdate,
                 curses.filter, curses.flash, curses.flushinp,
                 curses.has_colors, curses.has_ic, curses.has_il,
                 curses.isendwin, curses.killchar, curses.longname,
                 curses.nocbreak, curses.noecho, curses.nonl,
                 curses.noqiflush, curses.noraw,
                 curses.reset_prog_mode, curses.termattrs,
                 curses.termname, curses.erasechar, curses.getsyx]:
        func()

    # Functions that actually need arguments
    if curses.tigetstr("cnorm"):
        curses.curs_set(1)
    curses.delay_output(1)
    curses.echo() ; curses.echo(1)

    f = tempfile.TemporaryFile()
    stdscr.putwin(f)
    f.seek(0)
    curses.getwin(f)
    f.close()

    curses.halfdelay(1)
    curses.intrflush(1)
    curses.meta(1)
    curses.napms(100)
    curses.newpad(50,50)
    win = curses.newwin(5,5)
    win = curses.newwin(5,5, 1,1)
    curses.nl() ; curses.nl(1)
    curses.putp('abc')
    curses.qiflush()
    curses.raw() ; curses.raw(1)
    curses.setsyx(5,5)
    curses.tigetflag('hc')
    curses.tigetnum('co')
    curses.tigetstr('cr')
    curses.tparm('cr')
    curses.typeahead(sys.__stdin__.fileno())
    curses.unctrl('a')
    curses.ungetch('a')
    curses.use_env(1)

    # Functions only available on a few platforms
    if curses.has_colors():
        curses.start_color()
        curses.init_pair(2, 1,1)
        curses.color_content(1)
        curses.color_pair(2)
        curses.pair_content(curses.COLOR_PAIRS - 1)
        curses.pair_number(0)

        if hasattr(curses, 'use_default_colors'):
            curses.use_default_colors()

    if hasattr(curses, 'keyname'):
        curses.keyname(13)

    if hasattr(curses, 'has_key'):
        curses.has_key(13)

    if hasattr(curses, 'getmouse'):
        (availmask, oldmask) = curses.mousemask(curses.BUTTON1_PRESSED)
        # availmask indicates that mouse stuff not available.
        if availmask != 0:
            curses.mouseinterval(10)
            # just verify these don't cause errors
            m = curses.getmouse()
            curses.ungetmouse(*m)
Пример #8
0
#
Пример #9
0
#