/tutorial/vision/widget/menu_demo.e

http://github.com/tybor/Liberty · Specman e · 64 lines · 56 code · 8 blank · 0 comment · 0 complexity · 40d96a7fd1b8a987abc9581714044c11 MD5 · raw file

  1. class MENU_DEMO
  2. inherit
  3. GRAPHIC
  4. creation {ANY}
  5. make
  6. feature {}
  7. make is
  8. local
  9. toplevel_window, help_window: TOPLEVEL_WINDOW; menu_bar: MENU_BAR; help_label: LABEL
  10. do
  11. create help_window
  12. create label.make(U"Waiting...")
  13. help_window.set_background_color(white_color)
  14. help_window.child_attach(create {LABEL}.make(U"This is the %
  15. %help Window"))
  16. help_window.when_close_requested(agent help_window.unmap)
  17. help_window.when_close_requested(agent vision.loop_stack.break)
  18. create toplevel_window
  19. toplevel_window.set_background_color(white_color)
  20. create menu_bar.make(toplevel_window)
  21. menu_bar.add_text_entry(U"File", file_menu)
  22. menu_bar.add_text_entry(U"Edit", edit_menu)
  23. menu_bar.add_space
  24. create help_label.make(U"Help")
  25. menu_bar.add_entry(help_label, agent show(help_window))
  26. menu_bar.map
  27. label.set_expand(True)
  28. toplevel_window.child_attach(label)
  29. toplevel_window.when_close_requested(agent vision.loop_stack.break)
  30. toplevel_window.map
  31. vision.start
  32. end
  33. feature {}
  34. label: LABEL
  35. show (toplevel_window: TOPLEVEL_WINDOW) is
  36. do
  37. vision.new_loop
  38. toplevel_window.map
  39. end
  40. file_menu: MENU is
  41. do
  42. create Result.make
  43. Result.add_text_entry(U"Open", agent label.set_text(U"Open"))
  44. Result.add_text_entry(U"Save", agent label.set_text(U"Save"))
  45. Result.add_space
  46. Result.add_text_entry(U"Exit", agent vision.loop_stack.break)
  47. end
  48. edit_menu: MENU is
  49. do
  50. create Result.make
  51. Result.add_text_entry(U"Undo", agent label.set_text(U"Undo"))
  52. Result.add_space
  53. Result.add_text_entry(U"Copy", agent label.set_text(U"Copy"))
  54. Result.add_text_entry(U"Paste", agent label.set_text(U"Paste"))
  55. end
  56. end -- class MENU_DEMO