diff options
Diffstat (limited to 'unit_trace/viz/windows.py')
-rw-r--r-- | unit_trace/viz/windows.py | 65 |
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 | |||
3 | import pygtk | ||
4 | import gtk | ||
5 | import gobject | ||
6 | |||
7 | class 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 | |||
35 | class 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()) | ||