mirror of
https://github.com/rr-/pq-cli.git
synced 2026-09-29 06:44:00 -06:00
ui/curses: implement game view widget focusing
This commit is contained in:
@@ -3,12 +3,15 @@ import typing as T
|
||||
from pqcli.mechanic import EquipmentType, Player
|
||||
from pqcli.ui.curses.widgets import DataTable, WindowWrapper
|
||||
|
||||
from .focusable import Focusable
|
||||
|
||||
class EquipmentWindow(WindowWrapper):
|
||||
|
||||
class EquipmentWindow(Focusable, WindowWrapper):
|
||||
def __init__(
|
||||
self, player: Player, parent: T.Any, h: int, w: int, y: int, x: int
|
||||
) -> None:
|
||||
super().__init__(parent, h, w, y, x)
|
||||
self._on_focus_change += self._render
|
||||
|
||||
self._data_table = DataTable(
|
||||
self._win, h - 2, w - 2, 1, 1, align_right=False
|
||||
@@ -44,9 +47,11 @@ class EquipmentWindow(WindowWrapper):
|
||||
if not self._win:
|
||||
return
|
||||
|
||||
self._win.box()
|
||||
text = " Equipment "
|
||||
x = max(0, (self.getmaxyx()[1] - len(text)) // 2)
|
||||
self._win.addnstr(0, x, text, min(len(text), self.getmaxyx()[1]))
|
||||
with self._focus_standout(self._win):
|
||||
self._win.box()
|
||||
text = " Equipment "
|
||||
x = max(0, (self.getmaxyx()[1] - len(text)) // 2)
|
||||
self._win.addnstr(0, x, text, min(len(text), self.getmaxyx()[1]))
|
||||
|
||||
self._win.refresh()
|
||||
self._data_table.render()
|
||||
|
||||
Reference in New Issue
Block a user