Przeglądaj źródła

Fix updating triggers in toggle button

Yentl Van Tendeloo 7 lat temu
rodzic
commit
6ea1a5774c
2 zmienionych plików z 20 dodań i 1 usunięć
  1. 9 0
      classes/widgets/toggle_button.xml
  2. 11 1
      frontend.py

+ 9 - 0
classes/widgets/toggle_button.xml

@@ -93,6 +93,15 @@
                     self.tooltip.hidetip()
                 </script>
             </transition>
+
+            <transition event="change_triggers" target='ready/history'>
+                <parameter name="on_activate"/>
+                <parameter name="on_deactivate"/>
+                <script>
+                    self.on_activate = on_activate
+                    self.on_deactivate = on_deactivate
+                </script>
+            </transition>
         </state>
     </scxml>
 </class>

+ 11 - 1
frontend.py

@@ -1,7 +1,7 @@
 """
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
-Date:   Mon Oct 16 08:57:24 2017
+Date:   Mon Oct 16 09:00:32 2017
 
 Model author: Yentl Van Tendeloo
 Model name:   Modelverse Visual Editor - Tkinter Version 
@@ -8518,6 +8518,10 @@ class ToggleButton(RuntimeClassBase, tk.Button, SCCDWidget):
         _main_1.setTrigger(Event("leave", "input"))
         _main_1.setGuard(self._main_1_guard)
         self.states["/main"].addTransition(_main_1)
+        _main_2 = Transition(self, self.states["/main"], [self.states["/main/ready/history"]])
+        _main_2.setAction(self._main_2_exec)
+        _main_2.setTrigger(Event("change_triggers", None))
+        self.states["/main"].addTransition(_main_2)
     
     def _main_ready_active_enter(self):
         self.configure(state=tk.ACTIVE, relief=tk.SUNKEN)
@@ -8541,6 +8545,12 @@ class ToggleButton(RuntimeClassBase, tk.Button, SCCDWidget):
         tagorid = parameters[0]
         return tagorid == id(self) and self.tooltip is not None
     
+    def _main_2_exec(self, parameters):
+        on_activate = parameters[0]
+        on_deactivate = parameters[1]
+        self.on_activate = on_activate
+        self.on_deactivate = on_deactivate
+    
     def _main_initializing_0_exec(self, parameters):
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, 'parent', Event("tk_widget", None, [self])]))