Changeset 3ae08b62533f…
Parent a7d8c476ee18…
by
Changes to one file · Browse files at 3ae08b62533f Showing diff from parent a7d8c476ee18 Diff from another changeset...
|
@@ -0,0 +1,78 @@ + #
+# taskbarui.py - User interface for the TortoiseHg taskbar app
+#
+# Copyright (C) 2009 Steve Borho <steve@borho.org>
+#
+
+import os
+import gtk
+import gobject
+
+from thgutil.i18n import _
+from hggtk import gtklib
+
+class TaskBarUI(gtk.Window):
+ 'User interface for the TortoiseHg taskbar application'
+ def __init__(self, inputq):
+ 'Initialize the Dialog'
+ gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
+ gtklib.set_tortoise_icon(self, 'hg.ico')
+ gtklib.set_tortoise_keys(self)
+
+ self.set_default_size(400, 120)
+ self.set_title(_('TortoiseHg Taskbar'))
+
+ vbox = gtk.VBox()
+ self.add(vbox)
+
+ frame = gtk.Frame(_('Event Log'))
+ frame.set_border_width(2)
+ vbox.pack_start(frame, True, True, 2)
+
+ scrolledwindow = gtk.ScrolledWindow()
+ scrolledwindow.set_shadow_type(gtk.SHADOW_ETCHED_IN)
+ scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+ scrolledwindow.set_border_width(2)
+ textview = gtk.TextView()
+ textview.set_editable(False)
+ scrolledwindow.add(textview)
+ frame.add(scrolledwindow)
+ gobject.timeout_add(10, self.pollq, inputq, textview)
+
+ hbbox = gtk.HButtonBox()
+ hbbox.set_layout(gtk.BUTTONBOX_END)
+ vbox.pack_start(hbbox, False, False, 2)
+ close = gtk.Button(_('Close'))
+ close.connect('clicked', lambda x: self.destroy())
+
+ accelgroup = gtk.AccelGroup()
+ self.add_accel_group(accelgroup)
+ key, modifier = gtk.accelerator_parse('Escape')
+ close.add_accelerator('clicked', accelgroup, key, 0,
+ gtk.ACCEL_VISIBLE)
+ hbbox.add(close)
+
+ def pollq(self, queue, textview):
+ 'Poll the input queue'
+ buf = textview.get_buffer()
+ enditer = buf.get_end_iter()
+ while queue.qsize():
+ try:
+ msg = queue.get(0)
+ buf.insert(enditer, msg+'\n')
+ textview.scroll_to_mark(buf.get_insert(), 0)
+ except Queue.Empty:
+ pass
+
+def run(ui, *pats, **opts):
+ return TaskBarUI(opts['queue'])
+
+'''
+import Queue
+q = Queue.Queue()
+q.put('Test1')
+q.put('Test2')
+from mercurial import ui
+from hggtk import hgtk
+hgtk.gtkrun(run(ui.ui(), queue=q))
+'''
|
Loading...