aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console/select.py
diff options
context:
space:
mode:
Diffstat (limited to 'libmproxy/console/select.py')
-rw-r--r--libmproxy/console/select.py120
1 files changed, 0 insertions, 120 deletions
diff --git a/libmproxy/console/select.py b/libmproxy/console/select.py
deleted file mode 100644
index 928a7ca5..00000000
--- a/libmproxy/console/select.py
+++ /dev/null
@@ -1,120 +0,0 @@
-import urwid
-
-from . import common
-
-
-class _OptionWidget(urwid.WidgetWrap):
-
- def __init__(self, option, text, shortcut, active, focus):
- self.option = option
- textattr = "text"
- keyattr = "key"
- if focus and active:
- textattr = "option_active_selected"
- keyattr = "option_selected_key"
- elif focus:
- textattr = "option_selected"
- keyattr = "option_selected_key"
- elif active:
- textattr = "option_active"
- if shortcut:
- text = common.highlight_key(
- text,
- shortcut,
- textattr = textattr,
- keyattr = keyattr
- )
- opt = urwid.Text(text, align="left")
- opt = urwid.AttrWrap(opt, textattr)
- opt = urwid.Padding(opt, align = "center", width = 40)
- urwid.WidgetWrap.__init__(self, opt)
-
- def keypress(self, size, key):
- return key
-
- def selectable(self):
- return True
-
-
-class OptionWalker(urwid.ListWalker):
-
- def __init__(self, options):
- urwid.ListWalker.__init__(self)
- self.options = options
- self.focus = 0
-
- def set_focus(self, pos):
- self.focus = pos
-
- def get_focus(self):
- return self.options[self.focus].render(True), self.focus
-
- def get_next(self, pos):
- if pos >= len(self.options) - 1:
- return None, None
- return self.options[pos + 1].render(False), pos + 1
-
- def get_prev(self, pos):
- if pos <= 0:
- return None, None
- return self.options[pos - 1].render(False), pos - 1
-
-
-class Heading:
-
- def __init__(self, text):
- self.text = text
-
- def render(self, focus):
- opt = urwid.Text("\n" + self.text, align="left")
- opt = urwid.AttrWrap(opt, "title")
- opt = urwid.Padding(opt, align = "center", width = 40)
- return opt
-
-
-_neg = lambda: False
-
-
-class Option:
-
- def __init__(self, text, shortcut, getstate=None, activate=None):
- self.text = text
- self.shortcut = shortcut
- self.getstate = getstate or _neg
- self.activate = activate or _neg
-
- def render(self, focus):
- return _OptionWidget(
- self,
- self.text,
- self.shortcut,
- self.getstate(),
- focus)
-
-
-class Select(urwid.ListBox):
-
- def __init__(self, options):
- self.walker = OptionWalker(options)
- urwid.ListBox.__init__(
- self,
- self.walker
- )
- self.options = options
- self.keymap = {}
- for i in options:
- if hasattr(i, "shortcut") and i.shortcut:
- if i.shortcut in self.keymap:
- raise ValueError("Duplicate shortcut key: %s" % i.shortcut)
- self.keymap[i.shortcut] = i
-
- def keypress(self, size, key):
- if key == "enter" or key == " ":
- self.get_focus()[0].option.activate()
- return None
- key = common.shortcuts(key)
- if key in self.keymap:
- self.keymap[key].activate()
- self.set_focus(self.options.index(self.keymap[key]))
- return None
- return super(self.__class__, self).keypress(size, key)