def draw(stdscr, table_pad, output_pad, offset, table): top_offset, left_offset = offset mi, mj = stdscr.getmaxyx() # Clear all pads and windows stdscr.clear() table_pad.clear() output_pad.clear() # Draw table top_offset, left_offset = table.draw(stdscr, table_pad, top_offset, left_offset) stdscr.move(mi / 2 + 1, 0) # Draw instructions printstr(stdscr, "[q] abort / [arrows] move / [space] (un)select cell / [d] clear selection / [c] select column", curses.color_pair(3)) printstr(stdscr, "[enter] print and copyselected cells(protip: use `pbpaste | ...` to pipe forward)", curses.color_pair(3)) printstr(stdscr) # Output preview if table.selection: printstr(stdscr, "[{}] cells selected".format(len(table.selection)), curses.color_pair(3)) output_pad.move(0, 0) for content in table.selection_content: i, j = output_pad.getyx() writestr(output_pad, " |=> ", curses.color_pair(1)) printstr(output_pad, content, curses.color_pair(1)) output_pad.move(i + 1, j) # Refresh stdscr.refresh() table_pad.refresh(top_offset, table.get_column_offset(left_offset), 0, 0, mi / 2 - 1, mj - 1) output_pad.refresh(0, 0, mi / 2 + 6, 0, mi - 1, mj - 1) return (top_offset, left_offset)
def draw_preview(self, pad): if self._table.selection: pad.move(0, 0) printstr(pad, "[{}] cells selected".format(len(self._table.selection)), curses.color_pair(7)) for content in self._table.selection_content: i, j = pad.getyx() writestr(pad, " |=> ", curses.color_pair(1)) printstr(pad, content, curses.color_pair(1)) pad.move(i + 1, j)
def draw(stdscr, table_pad, output_pad, offset, table): top_offset, left_offset = offset mi, mj = stdscr.getmaxyx() # Clear all pads and windows stdscr.clear() table_pad.clear() output_pad.clear() # Draw table top_offset, left_offset = table.draw(stdscr, table_pad, top_offset, left_offset) stdscr.move(mi / 2 + 1, 0) # Draw instructions printstr( stdscr, "[q] abort / [arrows] move / [space] (un)select cell / [d] clear selection / [c] select column", curses.color_pair(3)) printstr( stdscr, "[enter] print and copyselected cells(protip: use `pbpaste | ...` to pipe forward)", curses.color_pair(3)) printstr(stdscr) # Output preview if table.selection: printstr(stdscr, "[{}] cells selected".format(len(table.selection)), curses.color_pair(3)) output_pad.move(0, 0) for content in table.selection_content: i, j = output_pad.getyx() writestr(output_pad, " |=> ", curses.color_pair(1)) printstr(output_pad, content, curses.color_pair(1)) output_pad.move(i + 1, j) # Refresh stdscr.refresh() table_pad.refresh(top_offset, table.get_column_offset(left_offset), 0, 0, mi / 2 - 1, mj - 1) output_pad.refresh(0, 0, mi / 2 + 6, 0, mi - 1, mj - 1) return (top_offset, left_offset)