| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- MODULE hello ;
- (*
- m2-GTK4 example - the canonical GTK4 "Hello, world".
- A GtkApplication is created, its "activate" signal opens a window
- with a label, and g_application_run() drives the main loop until the
- window is closed.
- Build: make examples
- Run: ./build/examples/hello
- *)
- FROM Gio IMPORT g_application_run;
- FROM GtkApplication IMPORT gtk_application_new;
- FROM GtkWindow IMPORT gtk_application_window_new, gtk_window_set_title,
- gtk_window_set_default_size, gtk_window_set_child, gtk_window_present;
- FROM GtkLabel IMPORT gtk_label_new;
- FROM GtkUtils IMPORT Connect;
- FROM SYSTEM IMPORT ADDRESS, ADR;
- FROM libc IMPORT printf;
- CONST
- AppId = "org.example.m2gtk4.Hello";
- PROCEDURE OnActivate (application: ADDRESS; data: ADDRESS);
- VAR
- window, label: ADDRESS;
- BEGIN
- window := gtk_application_window_new(application);
- gtk_window_set_title(window, "m2-GTK4 Hello");
- gtk_window_set_default_size(window, 360, 120);
- label := gtk_label_new("Hello, GNU Modula-2 + GTK4!");
- gtk_window_set_child(window, label);
- gtk_window_present(window)
- END OnActivate;
- VAR
- app: ADDRESS;
- BEGIN
- app := gtk_application_new(AppId, 0);
- IF app = NIL THEN
- printf("gtk_application_new failed\n");
- HALT(1)
- END;
- Connect(app, "activate", ADR(OnActivate), NIL);
- g_application_run(app, 0, NIL)
- END hello.
|