return f'{self.idx}) {self._title}'
def draw(self) -> bool:
- self._term.clear()
if not super().draw():
if self._term.size.x > 0:
lines = ['']
return False
title_box = f'{self.status_title}]'
status_line = title_box + '=' * (self._term.size.x - len(title_box))
- self.history.draw()
self._term.write(status_line, self._y_status)
+ self.history.draw()
self.prompt.draw()
return True
def _switch_window(self, idx: int) -> None:
self._window_idx = idx
- self.window.draw()
+ self.window.tainted = True
@property
def _commands(self) -> dict[str, tuple[Callable[..., None | Optional[str]],
@contextmanager
def setup(self) -> Generator:
'Combine multiple contexts into one and run keypress loop.'
- self.clear()
+ print(self._blessed.clear, end='')
with (self._blessed.raw(),
self._blessed.fullscreen(),
self._blessed.hidden_cursor(),
'(Re-)calculate .size..'
self.size = _YX(self._blessed.height, self._blessed.width)
- def clear(self) -> None:
- 'Clear terminal.'
- print(self._blessed.clear, end='')
-
def flush(self) -> None:
'Flush terminal.'
print('', end='', flush=True)