From 5f81247353abd53ed94e4b6a9900962593729be6 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Fri, 22 Aug 2008 00:19:18 +0100 Subject: [PATCH] Feeble exploration of the parts necessary for a graphical profile editor --- terminator | 2 ++ terminatorlib/prefs_profile.py | 49 ++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 terminatorlib/prefs_profile.py diff --git a/terminator b/terminator index 2547abe4..239bfee3 100755 --- a/terminator +++ b/terminator @@ -157,5 +157,7 @@ See the following bug report for more details: (debugthread, debugsvr) = debugserver.spawn(locals()) term.debugaddress = debugsvr.server_address +# from terminatorlib.prefs_profile import ProfileEditor +# prefs = ProfileEditor () gtk.main() diff --git a/terminatorlib/prefs_profile.py b/terminatorlib/prefs_profile.py new file mode 100644 index 00000000..cbd541f4 --- /dev/null +++ b/terminatorlib/prefs_profile.py @@ -0,0 +1,49 @@ +#!/usr/bin/python + +from terminatorlib.config import dbg,err,Defaults +from terminatorlib.version import APP_NAME, APP_VERSION + +import gtk + +class ProfileEditor: + appearance = ['titlebars', 'titletips', 'allow_bold', 'silent_bell', 'background_color', 'background_darkness', 'background_type', 'background_image', 'cursor_blink', 'font', 'foreground_color', 'scrollbar_position', 'scroll_background', 'palette', 'use_system_font', 'use_theme_colors', 'force_no_bell', 'enable_real_transparency'] + behaviour = ['delete_binding', 'emulation', 'scroll_on_keystroke', 'scroll_on_output', 'scrollback_lines', 'focus'] + + def __init__ (self): + self.window = gtk.Window () + self.notebook = gtk.Notebook() + self.window.add (self.notebook) + + self.notebook.append_page (self.auto_add (gtk.Table (), self.appearance), gtk.Label ("Appearance")) + self.notebook.append_page (self.auto_add (gtk.Table (), self.behaviour), gtk.Label ("Behaviour")) + + self.window.show_all () + + def auto_add (self, table, list): + row = 0 + for key in list: + table.resize (row + 1, 2) + label = gtk.Label (key) + + type = Defaults[key].__class__.__name__ + value = Defaults[key] + widget = None + + if type == "bool": + widget = gtk.CheckButton () + widget.set_active (value) + elif type in ["str", "int", "float"]: + widget = gtk.Entry () + widget.set_text (str(value)) + elif type == "list": + continue + else: + print "Unknown type: " + type + continue + + table.attach (label, 0, 1, row, row + 1) + table.attach (widget, 1, 2, row, row + 1) + row += 1 + + return (table) +