123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <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='{}' />
- <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 = constructor_parameters["on_activate"]
- self.on_deactivate = constructor_parameters["on_deactivate"]
- if "tooltip_text" in constructor_parameters:
- self.tooltip = ToolTip(self, constructor_parameters["tooltip_text"])
- else:
- self.tooltip = None
- self.initial_active = constructor_parameters["active"]
- </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" initial="decide">
- <state id="decide">
- <transition cond="self.initial_active" target="../active"/>
- <transition cond="not self.initial_active" target="../inactive"/>
- </state>
- <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" type="deep"/>
- </state>
- <transition port='input' event="enter" target='ready/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='ready/history' cond='tagorid == id(self) and self.tooltip is not None'>
- <parameter name='tagorid' type='int' default='None' />
- <script>
- 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>
|