diff options
author | Marco Pesenti Gritti <mpg@redhat.com> | 2007-09-30 10:42:48 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpg@redhat.com> | 2007-09-30 10:42:48 (GMT) |
commit | c8b5ab290e1bd96eb6fadac1708a2f14b7da4d70 (patch) | |
tree | cfd21f8bbd8551daaa795fe66b724d4113b792e5 /shell/console/console.py | |
parent | 03a4f01c25faf2b28f59b72b817c04a7d6cee6b3 (diff) |
More work on the new console
Diffstat (limited to 'shell/console/console.py')
-rw-r--r-- | shell/console/console.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/shell/console/console.py b/shell/console/console.py new file mode 100644 index 0000000..1bdd5ce --- /dev/null +++ b/shell/console/console.py @@ -0,0 +1,45 @@ +import os + +import gtk +import hippo + +class Console(gtk.Window): + def __init__(self): + gtk.Window.__init__(self) + + self.set_default_size(gtk.gdk.screen_width() * 3 / 4, + gtk.gdk.screen_height() * 3 / 4) + self.set_decorated(False) + self.set_position(gtk.WIN_POS_CENTER_ALWAYS) + self.connect('realize', self._realize_cb) + + canvas = hippo.Canvas() + self.add(canvas) + canvas.show() + + box = hippo.CanvasBox(padding=20, border_color=0x000000FF, + border=3) + canvas.set_root(box) + + self.registry = Registry() + for module in self.registry.view_modules: + box.append(module.create_view('shell'), hippo.PACK_EXPAND) + + def _realize_cb(self, widget): + self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG) + +class Registry(object): + def __init__(self): + self.view_modules = [] + + base_extensions = [ 'console.logviewer' ] + for extension in base_extensions: + self.load_extension(extension) + + def load_extension(self, name): + module = __import__(name) + components = name.split('.') + for component in components[1:]: + module = getattr(module, component) + + self.view_modules.append(module) |