comparison pyink/FSM_window.py @ 1486:471805e582cc

Leave current mode when closing a FSM editor window
author Thinker K.F. Li <thinker@codemud.net>
date Sat, 30 Apr 2011 11:13:51 +0800
parents 20cf6ea263c6
children 3aba29609607
comparison
equal deleted inserted replaced
1485:20cf6ea263c6 1486:471805e582cc
19 builder = gtk.Builder() 19 builder = gtk.Builder()
20 builder.add_from_file(fname) 20 builder.add_from_file(fname)
21 21
22 main_win = builder.get_object("FSM_main_win") 22 main_win = builder.get_object("FSM_main_win")
23 view_box = builder.get_object("view_box") 23 view_box = builder.get_object("view_box")
24 add_state_button = builder.get_object('add_state')
25 move_state_button = builder.get_object('move_state')
24 26
25 state_editor = builder.get_object("state_editor") 27 state_editor = builder.get_object("state_editor")
26 state_name = builder.get_object('state_name') 28 state_name = builder.get_object('state_name')
27 state_radius = builder.get_object('state_radius') 29 state_radius = builder.get_object('state_radius')
28 30
32 builder.connect_signals(self) 34 builder.connect_signals(self)
33 35
34 self._builder = builder 36 self._builder = builder
35 self._main_win = main_win 37 self._main_win = main_win
36 self._view_box = view_box 38 self._view_box = view_box
39 self._add_state_button = add_state_button
40 self._move_state_button = move_state_button
37 41
38 self._state_editor = state_editor 42 self._state_editor = state_editor
39 self._state_name = state_name 43 self._state_name = state_name
40 self._state_radius = state_radius 44 self._state_radius = state_radius
41 45
71 state_editor.hide() 75 state_editor.hide()
72 pass 76 pass
73 77
74 def show(self): 78 def show(self):
75 self._main_win.show() 79 self._main_win.show()
80 self._add_state_button.set_active(True)
76 pass 81 pass
77 82
78 def hide(self): 83 def hide(self):
79 self._main_win.hide() 84 self._main_win.hide()
80 pass 85 pass
706 711
707 control_layer = doc.createElement('svg:g') 712 control_layer = doc.createElement('svg:g')
708 control_layer.setAttribute('inkscape:groupmode', 'layer') 713 control_layer.setAttribute('inkscape:groupmode', 'layer')
709 root.appendChild(control_layer) 714 root.appendChild(control_layer)
710 self._control_layer = control_layer 715 self._control_layer = control_layer
711
712 self._add_state_mode.activate()
713 pass 716 pass
714 717
715 def _doc(self): 718 def _doc(self):
716 view_widget = self._view_widget 719 view_widget = self._view_widget
717 view = view_widget.view 720 view = view_widget.view
762 pass 765 pass
763 766
764 def _emit_leave_mode(self): 767 def _emit_leave_mode(self):
765 if self._leave_mode_cb: 768 if self._leave_mode_cb:
766 self._leave_mode_cb() 769 self._leave_mode_cb()
770 self._leave_mode_cb = None
767 pass 771 pass
768 pass 772 pass
769 773
770 def ungrab_all(self): 774 def ungrab_all(self):
771 self.ungrab_bg() 775 self.ungrab_bg()
844 root.setAttribute('height', '768') 848 root.setAttribute('height', '768')
845 view.setResize(True, 800, 600) 849 view.setResize(True, 800, 600)
846 pass 850 pass
847 851
848 def on_close_window_activate(self, *args): 852 def on_close_window_activate(self, *args):
853 self._emit_leave_mode()
849 self._close_cb() 854 self._close_cb()
850 pass 855 pass
851 856
852 def on_FSM_main_win_destroy_event(self, *args): 857 def on_FSM_main_win_destroy_event(self, *args):
858 self._emit_leave_mode()
853 self._destroy_cb() 859 self._destroy_cb()
854 pass 860 pass
855 861
856 def on_FSM_main_win_delete_event(self, *args): 862 def on_FSM_main_win_delete_event(self, *args):
863 self._emit_leave_mode()
857 self._destroy_cb() 864 self._destroy_cb()
858 pass 865 pass
859 866
860 def on_add_state_toggled(self, *args): 867 def on_add_state_toggled(self, *args):
861 mode = self._add_state_mode 868 mode = self._add_state_mode
917 924
918 def show(self): 925 def show(self):
919 self._install_test_data() 926 self._install_test_data()
920 self._install_test_data = lambda: None 927 self._install_test_data = lambda: None
921 self._update_view() 928 self._update_view()
929 self._add_state_mode.activate()
922 super(FSM_window, self).show() 930 super(FSM_window, self).show()
923 pass 931 pass
924 932
925 def grab_mouse(self, callback): 933 def grab_mouse(self, callback):
926 assert self._grab_hdl is None 934 assert self._grab_hdl is None