From 884eef4bd52a33d13a1c509bf004842fa7b58652 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Fri, 11 Aug 2006 13:21:11 +0000 Subject: Show all activities output in the console, just activate the tab for the current activity. --- (limited to 'shell/ConsoleWindow.py') diff --git a/shell/ConsoleWindow.py b/shell/ConsoleWindow.py index b5d977e..e9a2563 100644 --- a/shell/ConsoleWindow.py +++ b/shell/ConsoleWindow.py @@ -1,5 +1,20 @@ import gtk +class Console(gtk.ScrolledWindow): + def __init__(self): + gtk.ScrolledWindow.__init__(self) + self.set_policy(gtk.POLICY_AUTOMATIC, + gtk.POLICY_AUTOMATIC) + + self._textview = gtk.TextView() + self._textview.set_wrap_mode(gtk.WRAP_WORD) + self.add(self._textview) + self._textview.show() + + def log(self, message): + buf = self._textview.get_buffer() + buf.insert(buf.get_end_iter(), message) + class ConsoleWindow(gtk.Window): def __init__(self): gtk.Window.__init__(self) @@ -9,18 +24,32 @@ class ConsoleWindow(gtk.Window): self.set_title("Console") self.connect("delete_event", lambda w, e: w.hide_on_delete()) - sw = gtk.ScrolledWindow() - sw.set_policy(gtk.POLICY_AUTOMATIC, - gtk.POLICY_AUTOMATIC) - - self._console = gtk.TextView() - self._console.set_wrap_mode(gtk.WRAP_WORD) - sw.add(self._console) - self._console.show() - - self.add(sw) - sw.show() + self._nb = gtk.Notebook() + self.add(self._nb) + self._nb.show() - def log(self, message): - buf = self._console.get_buffer() - buf.insert(buf.get_end_iter(), message) + self._consoles = {} + + def _add_console(self, page_id): + console = Console() + page = self._nb.append_page(console, gtk.Label(page_id)) + console.show() + + self._consoles[page_id] = console + + return console + + def _get_console(self, page_id): + if not self._consoles.has_key(page_id): + console = self._add_console(page_id) + else: + console = self._consoles[page_id] + return console + + def set_page(self, page_id): + page = self._nb.page_num(self._consoles[page_id]) + self._nb.set_current_page(page) + + def log(self, page_id, message): + console = self._get_console(page_id) + console.log(message) -- cgit v0.9.1