/tutorial/vision/widget/text_input.e

http://github.com/tybor/Liberty · Specman e · 57 lines · 50 code · 6 blank · 1 comment · 0 complexity · 4a856800ab5337e5adee8885fc1fb7f3 MD5 · raw file

  1. class TEXT_INPUT
  2. -- Show how to use TEXT_FIELD to allow keyboard user input.
  3. inherit
  4. GRAPHIC
  5. creation {ANY}
  6. make
  7. feature {}
  8. make is
  9. local
  10. toplevel_window: TOPLEVEL_WINDOW; first_name, last_name, display_name, email, phone: TEXT_FIELD
  11. do
  12. create toplevel_window.default_create
  13. toplevel_window.when_close_requested(agent vision.loop_stack.break)
  14. toplevel_window.set_background_color(light_grey_color)
  15. first_name := new_input(toplevel_window, once U"First Name:")
  16. last_name := new_input(toplevel_window, once U"Last Name:")
  17. display_name := new_input(toplevel_window, once U"Display Name:")
  18. email := new_input(toplevel_window, once U"Email Address:")
  19. phone := new_input(toplevel_window, once U"Phone Number:")
  20. toplevel_window.map
  21. vision.start
  22. display(once "First Name:", first_name)
  23. display(once "Last Name:", last_name)
  24. display(once "Display Name:", display_name)
  25. display(once "Email Address:", email)
  26. display(once "Phone Number:", phone)
  27. end
  28. new_input (c: CONTAINER; title: UNICODE_STRING): TEXT_FIELD is
  29. local
  30. label: LABEL; box: CONTAINER; row_layout: ROW_LAYOUT
  31. do
  32. create row_layout
  33. create box.make_layout(c, row_layout)
  34. box.set_x_expand(True)
  35. create label.make(title)
  36. box.child_attach(label)
  37. create Result.make(box)
  38. end
  39. display (msg: STRING; text_field: TEXT_FIELD) is
  40. local
  41. tmp: STRING
  42. do
  43. io.put_string(msg)
  44. io.put_string(once " %"")
  45. tmp := once ""
  46. tmp.clear_count
  47. text_field.text.utf8_encode_in(tmp)
  48. io.put_string(tmp)
  49. io.put_string(once "%"%N")
  50. end
  51. end -- class TEXT_INPUT