Kiln » TortoiseHg » TortoiseHg
Clone URL:  
taskbarui.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# # 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 return True 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)) '''