From: Christian Heller Date: Sat, 7 Jun 2025 16:47:25 +0000 (+0200) Subject: Add window index display to status (formerly: separator) line. X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/static/%22https:/validator.w3.org/reset_cookie?a=commitdiff_plain;p=ircplom Add window index display to status (formerly: separator) line. --- diff --git a/ircplom.py b/ircplom.py index 1ca94fd..a7d6366 100755 --- a/ircplom.py +++ b/ircplom.py @@ -577,9 +577,11 @@ class LogWidget(ScrollableWidget): class Window(Widget): 'Collects a log and a prompt meant for the same content stream.' - _y_separator: int + _idx: int + _y_status: int - def __init__(self, term: Terminal) -> None: + def __init__(self, idx: int, term: Terminal) -> None: + self._idx = idx self._term = term self.log = LogWidget(self._term.wrap, self._term.write_yx) self.prompt = PromptWidget(self._term.write_yx) @@ -588,14 +590,16 @@ class Window(Widget): def set_geometry(self, _=None) -> None: assert _ is None - self._y_separator = self._term.size.y - 2 - self.log.set_geometry(YX(self._y_separator, self._term.size.x)) + self._y_status = self._term.size.y - 2 + self.log.set_geometry(YX(self._y_status, self._term.size.x)) self.prompt.set_geometry(YX(self._term.size.y - 1, self._term.size.x)) def draw(self) -> None: + idx_box = f'[{self._idx}]' + status_line = idx_box + '=' * (self._term.size.x - len(idx_box)) self._term.clear() self.log.draw() - self._term.write_yx(YX(self._y_separator, 0), '=' * self._term.size.x) + self._term.write_yx(YX(self._y_status, 0), status_line) self.prompt.draw() @@ -604,9 +608,9 @@ class TuiLoop(Loop): def __init__(self, term: Terminal, *args, **kwargs) -> None: self._term = term - self._windows = [Window(self._term)] - self._conn_windows: list[Window] = [] + self._windows = [Window(0, self._term)] self._window_idx = 0 + self._conn_windows: list[Window] = [] super().__init__(*args, **kwargs) self.put(Event('SET_SCREEN')) @@ -634,7 +638,7 @@ class TuiLoop(Loop): window.set_geometry() self.window.draw() elif event.type_ == 'CONNECTION_WINDOW': - conn_win = Window(self._term) + conn_win = Window(len(self._windows), self._term) self._windows += [conn_win] self._conn_windows += [conn_win] elif event.type_ == 'ALERT':