Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ConsoleWindow.py
diff options
context:
space:
mode:
Diffstat (limited to 'shell/ConsoleWindow.py')
-rw-r--r--shell/ConsoleWindow.py57
1 files changed, 43 insertions, 14 deletions
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)