diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2015-04-07 08:42:40 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2015-04-07 08:42:40 +1200 |
commit | 1cb1ee411b9c8ffc40f83bcca99770af7f43a521 (patch) | |
tree | 6168cc606a28ab82643e1da69716f51648267ca4 /libmproxy/console/palettepicker.py | |
parent | 538f215458891f045b2de6a8b675db48754fbb4a (diff) | |
download | mitmproxy-1cb1ee411b9c8ffc40f83bcca99770af7f43a521.tar.gz mitmproxy-1cb1ee411b9c8ffc40f83bcca99770af7f43a521.tar.bz2 mitmproxy-1cb1ee411b9c8ffc40f83bcca99770af7f43a521.zip |
console: palette picker for the options screen
Diffstat (limited to 'libmproxy/console/palettepicker.py')
-rw-r--r-- | libmproxy/console/palettepicker.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/libmproxy/console/palettepicker.py b/libmproxy/console/palettepicker.py new file mode 100644 index 00000000..0062d9ae --- /dev/null +++ b/libmproxy/console/palettepicker.py @@ -0,0 +1,59 @@ +import urwid + +from . import select, common, palettes + +footer = [ + ('heading_key', "enter/space"), ":select", +] + +def _mkhelp(): + text = [] + keys = [ + ("enter/space", "select"), + ] + text.extend(common.format_keyvals(keys, key="key", val="text", indent=4)) + return text +help_context = _mkhelp() + + +class PalettePicker(urwid.WidgetWrap): + def __init__(self, master): + self.master = master + low, high = [], [] + for k, v in palettes.palettes.items(): + if v.high: + high.append(k) + else: + low.append(k) + high.sort() + low.sort() + + options = [ + select.Heading("High Colour") + ] + + def mkopt(name): + return select.Option( + i, + None, + None, + lambda: self.select(name) + ) + + for i in high: + options.append(mkopt(i)) + options.append(select.Heading("Low Colour")) + for i in low: + options.append(mkopt(i)) + + self.lb = select.Select(options) + title = urwid.Text("Palettes") + title = urwid.Padding(title, align="left", width=("relative", 100)) + title = urwid.AttrWrap(title, "heading") + self._w = urwid.Frame( + self.lb, + header = title + ) + + def select(self, name): + self.master.set_palette(name) |