toggle_button.xml 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <class name="ToggleButton">
  2. <relationships>
  3. <association name="parent" class="A"/>
  4. <inheritance class="SCCDWidget" priority='0'/>
  5. <inheritance class="tk.Button" priority='1'/>
  6. </relationships>
  7. <constructor>
  8. <parameter name="constructor_parameters" type='dict' default='{}' />
  9. <parameter name=""/>
  10. <super class="tk.Button">
  11. <parameter expr="constructor_parameters['parent']"/>
  12. <parameter expr="**(constructor_parameters['visual'].get_params())"/>
  13. </super>
  14. <super class="SCCDWidget">
  15. </super>
  16. <body>
  17. self.on_activate = self.constructor_parameters["on_activate"]
  18. self.on_deactivate = self.constructor_parameters["on_deactivate"]
  19. if "tooltip_text" in constructor_parameters:
  20. self.tooltip = ToolTip(self, constructor_parameters["tooltip_text"])
  21. else:
  22. self.tooltip = None
  23. </body>
  24. </constructor>
  25. <destructor>
  26. <body>
  27. self.destroy()
  28. </body>
  29. </destructor>
  30. <scxml initial="main">
  31. <state id="main" initial='initializing'>
  32. <state id="initializing">
  33. <transition target="../ready">
  34. <raise event="tk_widget" scope="narrow" target="'parent'">
  35. <parameter expr="self"/>
  36. </raise>
  37. </transition>
  38. </state>
  39. <state id="ready">
  40. <state id="active">
  41. <onentry>
  42. <script>
  43. self.configure(state=tk.ACTIVE, relief=tk.SUNKEN)
  44. </script>
  45. </onentry>
  46. <transition port='input' event="left-click" target='../inactive' cond='tagorid == id(self)'>
  47. <parameter name='tagorid' type='int' default='None' />
  48. <raise event="button_pressed" scope="narrow" target="'parent'">
  49. <parameter expr="self.on_deactivate" />
  50. </raise>
  51. </transition>
  52. <transition event="deactivate" target="../inactive"/>
  53. </state>
  54. <state id="inactive">
  55. <onentry>
  56. <script>
  57. self.configure(state=tk.NORMAL, relief=tk.RAISED)
  58. </script>
  59. </onentry>
  60. <transition port='input' event="left-click" target='../active' cond='tagorid == id(self)'>
  61. <parameter name='tagorid' type='int' default='None' />
  62. <raise event="button_pressed" scope="narrow" target="'parent'">
  63. <parameter expr="self.on_activate" />
  64. </raise>
  65. </transition>
  66. <transition event="activate" target="../active"/>
  67. </state>
  68. <history id="history"/>
  69. <transition port='input' event="enter" target='../history' cond='tagorid == id(self) and self.tooltip is not None'>
  70. <parameter name='tagorid' type='int' default='None' />
  71. <script>
  72. self.tooltip.showtip()
  73. </script>
  74. </transition>
  75. <transition port='input' event="leave" target='../history' cond='tagorid == id(self) and self.tooltip is not None'>
  76. <parameter name='tagorid' type='int' default='None' />
  77. <script>
  78. self.tooltip.hidetip()
  79. </script>
  80. </transition>
  81. </state>
  82. </state>
  83. </scxml>
  84. </class>