tab support finally lands in ceo
This commit is contained in:
parent
c31e7167f2
commit
046c0aa4f5
|
@ -56,8 +56,16 @@ class CaptionedText(urwid.Text):
|
||||||
|
|
||||||
class SingleEdit(urwid.Edit):
|
class SingleEdit(urwid.Edit):
|
||||||
def keypress(self, size, key):
|
def keypress(self, size, key):
|
||||||
if key == 'enter':
|
key_mappings = {
|
||||||
return urwid.Edit.keypress(self, size, 'down')
|
'enter': 'down',
|
||||||
|
'tab': 'down',
|
||||||
|
'shift tab': 'up',
|
||||||
|
'ctrl a': 'home',
|
||||||
|
'ctrl e': 'end'
|
||||||
|
}
|
||||||
|
|
||||||
|
if key in key_mappings:
|
||||||
|
return urwid.Edit.keypress(self, size, key_mappings[key])
|
||||||
else:
|
else:
|
||||||
return urwid.Edit.keypress(self, size, key)
|
return urwid.Edit.keypress(self, size, key)
|
||||||
|
|
||||||
|
@ -140,14 +148,23 @@ class PassEdit(SingleEdit):
|
||||||
text = urwid.Edit.get_text(self)
|
text = urwid.Edit.get_text(self)
|
||||||
return (self.caption + " " * len(self.get_edit_text()), text[1])
|
return (self.caption + " " * len(self.get_edit_text()), text[1])
|
||||||
|
|
||||||
|
class EnhancedButton(urwid.Button):
|
||||||
|
def keypress(self, size, key):
|
||||||
|
if key == 'tab':
|
||||||
|
return urwid.Button.keypress(self, size, 'down')
|
||||||
|
elif key == 'shift tab':
|
||||||
|
return urwid.Button.keypress(self, size, 'up')
|
||||||
|
else:
|
||||||
|
return urwid.Button.keypress(self, size, key)
|
||||||
|
|
||||||
class Wizard(urwid.WidgetWrap):
|
class Wizard(urwid.WidgetWrap):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.selected = None
|
self.selected = None
|
||||||
self.panels = []
|
self.panels = []
|
||||||
|
|
||||||
self.panelwrap = urwid.WidgetWrap( urwid.SolidFill() )
|
self.panelwrap = urwid.WidgetWrap( urwid.SolidFill() )
|
||||||
self.back = urwid.Button("Back", self.back)
|
self.back = EnhancedButton("Back", self.back)
|
||||||
self.next = urwid.Button("Next", self.next)
|
self.next = EnhancedButton("Next", self.next)
|
||||||
self.buttons = urwid.Columns( [ self.back, self.next ], dividechars=3, focus_column=1 )
|
self.buttons = urwid.Columns( [ self.back, self.next ], dividechars=3, focus_column=1 )
|
||||||
pad = urwid.Padding( self.buttons, ('fixed right', 2), 19 )
|
pad = urwid.Padding( self.buttons, ('fixed right', 2), 19 )
|
||||||
self.pile = urwid.Pile( [self.panelwrap, ('flow', pad)], 0 )
|
self.pile = urwid.Pile( [self.panelwrap, ('flow', pad)], 0 )
|
||||||
|
|
Loading…
Reference in New Issue