| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- MODULE test_application ;
- (*
- m2-GTK4 test - a GtkApplication runs, its "activate" handler builds
- a window, and a timeout quits the loop. Requires a display; the
- runner skips it when DISPLAY/WAYLAND_DISPLAY are both unset.
- *)
- FROM Gio IMPORT g_application_run, g_application_quit;
- 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 GLib IMPORT g_timeout_add, GSourceRemove;
- FROM SYSTEM IMPORT ADDRESS, ADR;
- FROM libc IMPORT printf;
- CONST
- AppId = "org.example.m2gtk4.TestApp";
- VAR
- app: ADDRESS;
- activated: BOOLEAN;
- PROCEDURE QuitCb (data: ADDRESS) : INTEGER;
- BEGIN
- g_application_quit(app);
- RETURN GSourceRemove
- END QuitCb;
- PROCEDURE OnActivate (application: ADDRESS; data: ADDRESS);
- VAR
- window, label: ADDRESS;
- BEGIN
- activated := TRUE;
- window := gtk_application_window_new(application);
- gtk_window_set_title(window, "test_application");
- gtk_window_set_default_size(window, 200, 80);
- label := gtk_label_new("ok");
- gtk_window_set_child(window, label);
- gtk_window_present(window);
- g_timeout_add(300, QuitCb, NIL)
- END OnActivate;
- VAR
- rc: INTEGER;
- BEGIN
- activated := FALSE;
- app := gtk_application_new(AppId, 0);
- IF app = NIL THEN
- printf("test_application: FAIL (gtk_application_new)\n");
- HALT(1)
- END;
- Connect(app, "activate", ADR(OnActivate), NIL);
- rc := g_application_run(app, 0, NIL);
- IF activated THEN
- printf("test_application: PASS\n");
- HALT(0)
- ELSE
- printf("test_application: FAIL (activate never ran)\n");
- HALT(1)
- END
- END test_application.
|