button.xml 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <class name="Button">
  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. <super class="tk.Button">
  10. <parameter expr="constructor_parameters['parent']"/>
  11. <parameter expr="**(constructor_parameters['visual'].get_params())"/>
  12. </super>
  13. <super class="SCCDWidget">
  14. </super>
  15. <body>
  16. self.event_parameters = constructor_parameters["event_parameters"]
  17. if "tooltip_text" in constructor_parameters:
  18. self.tooltip = ToolTip(self, constructor_parameters["tooltip_text"])
  19. else:
  20. self.tooltip = None
  21. self.visual = constructor_parameters["visual"]
  22. </body>
  23. </constructor>
  24. <destructor>
  25. <body>
  26. self.destroy()
  27. </body>
  28. </destructor>
  29. <scxml initial="main">
  30. <state id="main" initial='initializing'>
  31. <state id="initializing">
  32. <transition target="../ready">
  33. <raise event="tk_widget" scope="narrow" target="'parent'">
  34. <parameter expr="self"/>
  35. </raise>
  36. </transition>
  37. </state>
  38. <state id="ready">
  39. <transition port='input' event="left-click" target='.' cond='tagorid == id(self)'>
  40. <parameter name='tagorid' type='int' default='None' />
  41. <raise event="button_pressed" scope="narrow" target="'parent'">
  42. <parameter expr="self.event_parameters" />
  43. </raise>
  44. </transition>
  45. <transition port='input' event="enter" target='.' cond='tagorid == id(self) and self.tooltip is not None'>
  46. <parameter name='tagorid' type='int' default='None' />
  47. <script>
  48. self.tooltip.showtip()
  49. </script>
  50. </transition>
  51. <transition port='input' event="leave" target='.' cond='tagorid == id(self) and self.tooltip is not None'>
  52. <parameter name='tagorid' type='int' default='None' />
  53. <script>
  54. self.tooltip.hidetip()
  55. </script>
  56. </transition>
  57. <transition event="activate" target=".">
  58. <script>
  59. self.configure(state=tk.ACTIVE, relief=tk.SUNKEN)
  60. print("Activate " + str(self.event_parameters))
  61. </script>
  62. </transition>
  63. <transition event="deactivate" target=".">
  64. <script>
  65. self.configure(state=tk.NORMAL, relief=tk.RAISED)
  66. print("Deactivate " + str(self.event_parameters))
  67. </script>
  68. </transition>
  69. </state>
  70. </state>
  71. </scxml>
  72. </class>