def redraw(self, wnd: _curses.window): "Refresh debug window" lines, cols = wnd.getmaxyx() wnd.erase() wnd.hline(0, 0, curses.ACS_HLINE, cols) self._logs = self._logs[-(lines-1):] line = 1 for log in self._logs: wnd.addstr(line, 0, log[:cols-1]) line += 1 wnd.refresh()
def redraw(self, wnd: _curses.window): "Refresh the view display" lines, cols = wnd.getmaxyx() wnd.erase() line = 0 wnd.addstr(line, 0, f"View screen ({self.ticks} ticks):") line += 1 for i in range(0, curses.COLORS): wnd.addstr(line, i % cols, str(i % 10), curses.color_pair(i)) if (i+1) % cols == 0: line += 1 line += 1 for i, message in enumerate(self.messages): wnd.addstr(i + line, 0, "Msg: " + message) wnd.refresh()
def drawCrossword(self, win: _curses.window, board: Optional[List] = None): mh, mw = map(lambda x: x - 4, win.getmaxyx()) if not self.data: self.generateCrosswordBoard(mh, mw) self.data = None if self.data and (mh < self.data["height"] or mw < self.data["width"]): self.data = None if self.activeThread.get("gcb"): win.addstr(2, 2, f"generating Crossword {mh} x {mw}") win.refresh() elif self.data: ch, cw, board = self.calculateCenter( board or self.data["clueless"], win) for index, line in enumerate(board, start=ch): win.addstr(index, cw, line) for h, w, char in self.parseLoc.locaround: win.addstr(ch + h, cw + w, char, curses.color_pair(2))
def redraw(self, wnd: _curses.window): "Refresh status and keybindings display" # Update size on resize events self.lines_max, self.cols_max = wnd.getmaxyx() wnd.erase() wnd.hline(0, 0, curses.ACS_HLINE, self.cols_max) state = self.app.bindings.get_current() if state.render_callback is not None: state.render_callback() cmds = state.commands[:] col = self.margin_left while cmds: cmds, max_width = self._draw_column(wnd, col, cmds, state.disabled) col += max_width + self.margin_column hints = self.app.bindings.get_current().hints[:] while hints: hints, max_width = self._draw_hints(wnd, col, hints) col += max_width + self.margin_column wnd.refresh()