def refresh_line(self, line, *, no_refresh=False):
if self.invalidate:
self.refresh()
return
if len(self.logic.get_order()) == 0:
return
max_y, max_x = self.stdscr.getmaxyx()
row = line - self.top
if row < 0 or row >= max_y:
return
bit = self.logic.get_order()[line]
if hasattr(self.logic, "get_line"):
title = self.logic.get_line(bit, max_x - _INDICATOR_OFFSET * 2)
else:
title = bit[:max_x - _INDICATOR_OFFSET * 2]
if line == self.active:
self.stdscr.addstr(row, 0, "> ", curses.A_REVERSE)
self.stdscr.addstr(row, _INDICATOR_OFFSET, title, curses.A_REVERSE)
self.stdscr.chgat(row, 0, curses.A_REVERSE)
else:
self.stdscr.addstr(row, _INDICATOR_OFFSET, title)
self.stdscr.chgat(row, 0, curses.A_NORMAL)
if not no_refresh:
self.stdscr.refresh()
评论列表
文章目录