popup.xml 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <class name="Popup">
  2. <relationships>
  3. <inheritance class="tk.Toplevel" priority="1"/>
  4. <inheritance class="SCCDWidget" priority="0"/>
  5. <association name="buttons" class="Button"/>
  6. <association name="parent" class="A"/>
  7. </relationships>
  8. <constructor>
  9. <parameter name="message"/>
  10. <super class="tk.TopLevel"/>
  11. <super class="SCCDWidget"/>
  12. <body>
  13. self.frame = tk.Frame(self)
  14. tk.Label(self.frame, text=message).pack()
  15. self.frame.pack()
  16. </body>
  17. </constructor>
  18. <destructor>
  19. <body>
  20. self.destroy()
  21. </body>
  22. </destructor>
  23. <scxml initial="init">
  24. <state id="init" initial="init_button_OK">
  25. <state id="init_button_OK">
  26. <onentry>
  27. <raise event="create_instance" scope="cd">
  28. <parameter expr="'buttons'"/>
  29. <parameter expr="'Button'"/>
  30. <parameter expr="{'parent': self, 'visual': TextVisual('OK'), 'tooltip_text': 'Close popup.', 'event_parameters': 'OK'}"/>
  31. </raise>
  32. </onentry>
  33. <transition event="instance_created" target="../wait_for_packing">
  34. <parameter name="association_name"/>
  35. <raise event="start_instance" scope="cd">
  36. <parameter expr="association_name"/>
  37. </raise>
  38. <script>
  39. self.button = association_name
  40. </script>
  41. </transition>
  42. </state>
  43. <state id="wait_for_packing">
  44. <transition event="tk_widget" target="../../root">
  45. <parameter name="tk_elem"/>
  46. <script>
  47. tk_elem.pack(fill=tk.X)
  48. </script>
  49. </transition>
  50. </state>
  51. </state>
  52. <state id="root">
  53. <transition event="button_pressed" cond="event_name == 'OK'" target="../closing">
  54. <parameter name="event_name"/>
  55. </transition>
  56. <transition event="window-close" cond="ID == id(self)" target="../closing">
  57. <parameter name="ID"/>
  58. </transition>
  59. </state>
  60. <state id="closing">
  61. <onentry>
  62. <raise event="delete_instance" scope="cd">
  63. <parameter expr="self.button"/>
  64. </raise>
  65. </onentry>
  66. <transition event="instance_deleted" target="../close"/>
  67. </state>
  68. <state id="close">
  69. <onentry>
  70. <raise event="close_window" scope="narrow" target="'parent'"/>
  71. </onentry>
  72. </state>
  73. </scxml>
  74. </class>