bludgeon urwid into some kind of submissoin

This commit is contained in:
Michael Hudson-Doyle 2018-03-26 23:49:04 +13:00
parent b1ec1aa43d
commit 9d9c233dc4
2 changed files with 17 additions and 11 deletions

View File

@ -17,9 +17,9 @@ import logging
from urwid import (
connect_signal,
BoxAdapter,
LineBox,
Padding as UrwidPadding,
SolidFill,
Text,
WidgetWrap,
)
@ -313,22 +313,22 @@ class ToggleQuestion(WidgetWrap):
ListBox([
Text(_(toggle_text)),
]),
('pack', Text("")),
(1, SolidFill(" ")),
('pack', Padding.center_79(Columns([
('pack', Text(_("Shortcut: "))),
Color.string_input(selector),
]))),
('pack', Text("")),
(1, SolidFill(" ")),
('pack', button_pile([
ok_btn(label=_("OK"), on_press=self.ok),
cancel_btn(label=_("Cancel"), on_press=self.cancel),
])),
])
pile.focus_position = 4
super().__init__(
LineBox(
UrwidPadding(
# Don't like having a fixed height box adapter here but urwid has beaten me for now.
BoxAdapter(pile, height=10),
pile,
left=1, right=1)))
def ok(self, sender):
@ -412,7 +412,7 @@ class KeyboardView(BaseView):
variant = self.form.variant.widget.value
new_layout, new_variant = self.model.adjust_layout(layout, variant)
if (new_layout, new_variant) != (layout, variant):
self.show_overlay(ToggleQuestion(self, layout, variant))
self.show_overlay(ToggleQuestion(self, layout, variant), height=('relative', 100))
return
self.really_done(layout, variant)

View File

@ -18,7 +18,7 @@
Contains some default key navigations
"""
from urwid import Columns, Overlay, Pile, Text, WidgetWrap
from urwid import Columns, Overlay, Pile, SolidFill, Text, WidgetWrap
class BaseView(WidgetWrap):
@ -42,14 +42,20 @@ class BaseView(WidgetWrap):
if isinstance(kw['width'], int):
kw['width'] += 2*PADDING
args.update(kw)
if 'height' in kw:
f = SolidFill(" ")
p = 1
else:
f = Text("")
p = 'pack'
top = Pile([
('pack', Text("")),
(p, f),
Columns([
(PADDING, Text("")),
(PADDING, f),
overlay_widget,
(PADDING, Text(""))
(PADDING, f)
]),
('pack', Text("")),
(p, f),
])
self._w = Overlay(top_w=top, bottom_w=self._w, **args)