/src/wrappers/gtk/examples/multiple-hello/hello.e

http://github.com/tybor/Liberty · Specman e · 60 lines · 48 code · 10 blank · 2 comment · 0 complexity · 3af6e999000f43ad7c7c11b94362a0d8 MD5 · raw file

  1. indexing
  2. copyright: "(C) 2005 Paolo Redaelli "
  3. license: "LGPL v2 or later"
  4. date: "$Date:$"
  5. revision "$REvision:$"
  6. class HELLO
  7. insert
  8. GTK
  9. EXCEPTIONS
  10. creation make
  11. feature {} -- creation
  12. make is
  13. local i: INTEGER; window: MY_WINDOW
  14. do
  15. gtk.initialize
  16. from i:=eiffel_windows_count until i=0 loop
  17. create window.make
  18. window.set_title ("Window n."+i.out)
  19. window.show
  20. i := i - 1
  21. end
  22. from i:=c_windows_count until i=0 loop
  23. c_window
  24. i:=i-1
  25. end
  26. gtk.toplevels.do_all(agent print_window_label)
  27. gtk.run_main_loop
  28. end
  29. print_window_label (a_window: GTK_WINDOW) is
  30. require a_window/=Void
  31. do
  32. print(a_window.title)
  33. end
  34. feature
  35. eiffel_windows_count: INTEGER is 3
  36. c_windows_count: INTEGER is 2
  37. -- windows: COLLECTION[GTK_WINDOW]
  38. c_window is
  39. -- Create and show a GtkWindow from the C language
  40. external "C inline use <gtk/gtk.h>"
  41. alias "[
  42. /* create a GtkWindow at C level */
  43. GtkWindow *win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  44. gtk_window_set_title(win, "This windows is C created." );
  45. gtk_widget_show(GTK_WIDGET(win));
  46. printf("Creating a GtkWindow from C at %p\n",win);
  47. ]"
  48. ensure gtk.toplevels.count > old gtk.toplevels.count
  49. end
  50. end