|
|
@@ -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>
|