def refresh(self):
prior, (cursr_y, cursr_x) = curses.curs_set(0), curses.getsyx()
for idx, item in enumerate(self.items):
fmt = '{{: <{}}}'.format(self.width-1)
s = fmt.format(str(item))[:self.width-1]
# s = str(item)[:self.width-1] if len(str(item)) > self.width-1 else str(item)
color = colors.get_colorpair(self.default_color)
if self.current == idx:
if self.is_selected:
color = colors.get_colorpair('black-white')
else:
color = colors.get_colorpair(self.highlight_color)
self.textinpt.addstr(idx, 0, s, color)
if self.is_selected:
self.borderbox.bkgd(' ', curses.A_BOLD)
else:
self.borderbox.bkgd(' ', curses.A_DIM)
self.borderbox.border()
self.borderbox.refresh()
self.textinpt.refresh()
curses.curs_set(prior)
curses.setsyx(cursr_y, cursr_x)
curses.doupdate()
评论列表
文章目录