Yentl Van Tendeloo 8 rokov pred
rodič
commit
deba51a11d
1 zmenil súbory, kde vykonal 93 pridanie a 0 odobranie
  1. 93 0
      classes/widgets/toggle_button.xml

+ 93 - 0
classes/widgets/toggle_button.xml

@@ -0,0 +1,93 @@
+<class name="ToggleButton">
+    <relationships>
+        <association name="parent" class="A"/>
+        <inheritance class="SCCDWidget" priority='0'/>
+        <inheritance class="tk.Button" priority='1'/>
+    </relationships>
+    <constructor>
+        <parameter name="constructor_parameters" type='dict' default='{}' />
+        <parameter name=""/>
+        <super class="tk.Button">
+            <parameter expr="constructor_parameters['parent']"/>
+            <parameter expr="**(constructor_parameters['visual'].get_params())"/>
+        </super>
+        <super class="SCCDWidget">
+        </super>
+        <body>
+            self.on_activate = self.constructor_parameters["on_activate"]
+            self.on_deactivate = self.constructor_parameters["on_deactivate"]
+            if "tooltip_text" in constructor_parameters:
+                self.tooltip = ToolTip(self, constructor_parameters["tooltip_text"])
+            else:
+                self.tooltip = None
+        </body>
+    </constructor>
+    <destructor>
+        <body>
+            self.destroy()
+        </body>
+    </destructor>
+    <scxml initial="main">
+        <state id="main" initial='initializing'>
+            <state id="initializing">
+                <transition target="../ready">
+                    <raise event="tk_widget" scope="narrow" target="'parent'">
+                        <parameter expr="self"/>
+                    </raise>
+                </transition>
+            </state>
+
+            <state id="ready">
+                <state id="active">
+                    <onentry>
+                        <script>
+                            self.configure(state=tk.ACTIVE, relief=tk.SUNKEN)
+                        </script>
+                    </onentry>
+
+                    <transition port='input' event="left-click" target='../inactive' cond='tagorid == id(self)'>
+                        <parameter name='tagorid' type='int' default='None' />
+                        <raise event="button_pressed" scope="narrow" target="'parent'">
+                            <parameter expr="self.on_deactivate" />
+                        </raise>
+                    </transition>
+
+                    <transition event="deactivate" target="../inactive"/>
+                </state>
+
+                <state id="inactive">
+                    <onentry>
+                        <script>
+                            self.configure(state=tk.NORMAL, relief=tk.RAISED)
+                        </script>
+                    </onentry>
+
+                    <transition port='input' event="left-click" target='../active' cond='tagorid == id(self)'>
+                        <parameter name='tagorid' type='int' default='None' />
+                        <raise event="button_pressed" scope="narrow" target="'parent'">
+                            <parameter expr="self.on_activate" />
+                        </raise>
+                    </transition>
+
+                    <transition event="activate" target="../active"/>
+                </state>
+
+                <history id="history"/>
+
+                <transition port='input' event="enter" target='../history' cond='tagorid == id(self) and self.tooltip is not None'>
+                    <parameter name='tagorid' type='int' default='None' />
+                    <script>
+                        self.tooltip.showtip()
+                    </script>
+                </transition>
+
+                <transition port='input' event="leave" target='../history' cond='tagorid == id(self) and self.tooltip is not None'>
+                    <parameter name='tagorid' type='int' default='None' />
+                    <script>
+                        self.tooltip.hidetip()
+                    </script>
+                </transition>
+            </state>
+        </state>
+    </scxml>
+</class>