summaryrefslogtreecommitdiffstats
path: root/unit_trace/viz/windows.py
diff options
context:
space:
mode:
Diffstat (limited to 'unit_trace/viz/windows.py')
-rw-r--r--unit_trace/viz/windows.py65
1 files changed, 65 insertions, 0 deletions
diff --git a/unit_trace/viz/windows.py b/unit_trace/viz/windows.py
new file mode 100644
index 0000000..4e5af5c
--- /dev/null
+++ b/unit_trace/viz/windows.py
@@ -0,0 +1,65 @@
1"""Module for various miscellanious GUI windows."""
2
3import pygtk
4import gtk
5import gobject
6
7class TextInputDialog(gtk.Dialog):
8 WINDOW_WIDTH_REQ = 250
9 WINDOW_HEIGHT_REQ = 100
10
11 def __init__(self, title, label, parent_window=None):
12 super(TextInputDialog, self).__init__(title, parent_window,
13 gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
14 (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,
15 gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
16 label_widget = gtk.Label(label)
17 label_widget.set_alignment(0.0, 0.0)
18 self.text_input = gtk.Entry()
19 label_widget.show()
20 self.text_input.show()
21
22 vbox = self.get_content_area()
23
24 vbox.pack_start(label_widget, False, False, 0)
25 vbox.pack_start(self.text_input, False, False, 0)
26 vbox.show()
27
28 self.set_resizable(False)
29
30 self.set_size_request(TextInputDialog.WINDOW_WIDTH_REQ, TextInputDialog.WINDOW_HEIGHT_REQ)
31
32 def get_input(self):
33 return self.text_input.get_text()
34
35class InfoWindow(gtk.Window):
36 """Window designed to show information about an event."""
37
38 WINDOW_WIDTH_REQ = 400
39 WINDOW_HEIGHT_REQ = 300
40
41 def __init__(self):
42 super(InfoWindow, self).__init__(gtk.WINDOW_TOPLEVEL)
43
44 self.frm = gtk.Frame()
45
46 self.connect('delete_event', gtk.Widget.hide_on_delete)
47
48 self.text_view = gtk.TextView()
49 self.text_view.set_editable(False)
50 self.text_view.show()
51 self.frm.add(self.text_view)
52 self.frm.show()
53
54 self.vbox = gtk.VBox(False, 0)
55 self.vbox.pack_start(self.frm, True, True, 0)
56 self.vbox.show()
57
58 self.add(self.vbox)
59
60 self.set_default_size(InfoWindow.WINDOW_WIDTH_REQ, InfoWindow.WINDOW_HEIGHT_REQ)
61 self.set_title('Event Details')
62
63 def set_event(self, event):
64 self.text_view.get_buffer().set_text(event.str_long())
65 self.frm.set_label('Details for ' + event.get_name())