ui: use custom linebox

This commit is contained in:
rr-
2018-11-05 21:04:39 +01:00
parent 4acd2c10ad
commit 6df8589c1d
3 changed files with 28 additions and 7 deletions
+4
View File
@@ -20,6 +20,10 @@ urwid.command_map["L"] = "cursor right"
PALETTE: T.List[T.Tuple[str]] = [ PALETTE: T.List[T.Tuple[str]] = [
("button", "", ""), ("button", "", ""),
("button-focus", "black", "light red"), ("button-focus", "black", "light red"),
("linebox", "", ""),
("linebox-focus", "black", "light red"),
("linebox-content", "", ""),
("linebox-content-focus", "", ""),
] ]
+18
View File
@@ -0,0 +1,18 @@
import typing as T
import urwid
class LineBox(urwid.AttrWrap):
def __init__(
self, widget: urwid.Widget, *args: T.Any, **kwargs: T.Any
) -> None:
super().__init__(
urwid.LineBox(
urwid.AttrWrap(widget, "linebox-content", "linebox-content"),
*args,
**kwargs,
),
"linebox",
"linebox-focus",
),
+6 -7
View File
@@ -7,6 +7,7 @@ import urwid_readline
from pqcli.game_state import Player, StatsBuilder, generate_name, create_player from pqcli.game_state import Player, StatsBuilder, generate_name, create_player
from pqcli.config import RACES, CLASSES, PRIME_STATS from pqcli.config import RACES, CLASSES, PRIME_STATS
from pqcli.ui.button import MenuButton from pqcli.ui.button import MenuButton
from pqcli.ui.line_box import LineBox
class StatsGroupBox(urwid.Pile): class StatsGroupBox(urwid.Pile):
@@ -29,8 +30,8 @@ class StatsGroupBox(urwid.Pile):
[ [
urwid.Columns( urwid.Columns(
[ [
(8, urwid.ListBox(label_texts)), urwid.Filler(urwid.Pile(label_texts)),
urwid.ListBox(value_texts), urwid.Filler(urwid.Pile(value_texts)),
] ]
), ),
urwid.Filler(roll_button), urwid.Filler(roll_button),
@@ -109,13 +110,11 @@ class NewGameView(urwid.Pile):
), ),
urwid.Columns( urwid.Columns(
[ [
urwid.LineBox( LineBox(urwid.ListBox(race_checkboxes), title="Race"),
urwid.ListBox(race_checkboxes), title="Race" LineBox(
),
urwid.LineBox(
urwid.ListBox(class_checkboxes), title="Class" urwid.ListBox(class_checkboxes), title="Class"
), ),
urwid.LineBox( LineBox(
StatsGroupBox(self.player, stats_builder), StatsGroupBox(self.player, stats_builder),
title="Stats", title="Stats",
), ),