Mercurial > MadButterfly
annotate pyink/FSM_window.py @ 1458:59b90d7fcf57
Lock UI event handlers for FSM_window
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Sat, 16 Apr 2011 22:30:40 +0800 |
parents | 416a18409603 |
children | 6927debad4ee |
rev | line source |
---|---|
1456
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
1 import gtk |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
2 import os |
1458
59b90d7fcf57
Lock UI event handlers for FSM_window
Thinker K.F. Li <thinker@codemud.net>
parents:
1457
diff
changeset
|
3 import data_monitor |
1456
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
4 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
5 class FSM_window_base(object): |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
6 def __init__(self): |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
7 super(FSM_window_base, self).__init__() |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
8 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
9 dirname = os.path.dirname(__file__) |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
10 fname = os.path.join(dirname, 'FSM_window.glade') |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
11 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
12 builder = gtk.Builder() |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
13 builder.add_from_file(fname) |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
14 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
15 main_win = builder.get_object("FSM_main_win") |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
16 view_box = builder.get_object("view_box") |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
17 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
18 builder.connect_signals(self) |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
19 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
20 self._builder = builder |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
21 self._main_win = main_win |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
22 self._view_box = view_box |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
23 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
24 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
25 def show(self): |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
26 self._main_win.show() |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
27 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
28 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
29 def hide(self): |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
30 self._main_win.hide() |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
31 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
32 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
33 def on_start_state_activate(self, *args): |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
34 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
35 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
36 def on_rename_state_activate(self, *args): |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
37 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
38 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
39 def on_remove_state_activate(self, *args): |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
40 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
41 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
42 def on_zoom_out_clicked(self, *args): |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
43 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
44 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
45 def on_zoom_in_clicked(self, *args): |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
46 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
47 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
48 def on_move_state_toggled(self, *args): |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
49 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
50 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
51 def on_add_state_toggled(self, *args): |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
52 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
53 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
54 def on_close_window_activate(self, *args): |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
55 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
56 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
57 def on_FSM_main_win_destroy_event(self, *args): |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
58 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
59 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
60 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
61 class FSM_window(FSM_window_base): |
1458
59b90d7fcf57
Lock UI event handlers for FSM_window
Thinker K.F. Li <thinker@codemud.net>
parents:
1457
diff
changeset
|
62 __metaclass__ = data_monitor.data_monitor |
59b90d7fcf57
Lock UI event handlers for FSM_window
Thinker K.F. Li <thinker@codemud.net>
parents:
1457
diff
changeset
|
63 __data_monitor_prefix__ = 'on_' |
59b90d7fcf57
Lock UI event handlers for FSM_window
Thinker K.F. Li <thinker@codemud.net>
parents:
1457
diff
changeset
|
64 |
59b90d7fcf57
Lock UI event handlers for FSM_window
Thinker K.F. Li <thinker@codemud.net>
parents:
1457
diff
changeset
|
65 def __init__(self, domview_ui, close_cb, destroy_cb): |
1456
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
66 super(FSM_window, self).__init__() |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
67 |
1458
59b90d7fcf57
Lock UI event handlers for FSM_window
Thinker K.F. Li <thinker@codemud.net>
parents:
1457
diff
changeset
|
68 self._locker = domview_ui |
59b90d7fcf57
Lock UI event handlers for FSM_window
Thinker K.F. Li <thinker@codemud.net>
parents:
1457
diff
changeset
|
69 |
1457
416a18409603
Show an empty document in SVG viewer widget
Thinker K.F. Li <thinker@codemud.net>
parents:
1456
diff
changeset
|
70 self._close_cb = close_cb # callback to close editor window (hide) |
416a18409603
Show an empty document in SVG viewer widget
Thinker K.F. Li <thinker@codemud.net>
parents:
1456
diff
changeset
|
71 self._destroy_cb = destroy_cb # callback to destroy editor window |
1456
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
72 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
73 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
74 def set_svg_view(self, view): |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
75 self._view_box.add(view) |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
76 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
77 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
78 def on_close_window_activate(self, *args): |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
79 self._close_cb() |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
80 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
81 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
82 def on_FSM_main_win_destroy_event(self, *args): |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
83 self._destroy_cb() |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
84 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
85 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
86 def on_FSM_main_win_delete_event(self, *args): |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
87 self._destroy_cb() |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
88 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
89 pass |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
90 |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
91 if __name__ == '__main__': |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
92 win = FSM_window() |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
93 win._main_win.connect('destroy', gtk.main_quit) |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
94 win.show() |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
95 gtk.main() |
894a4bf35fe6
Start implement FSM editor window
Thinker K.F. Li <thinker@codemud.net>
parents:
diff
changeset
|
96 pass |