| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- MODULE test_filedialog ;
- (*
- m2-GTK4 test - GtkFileDialog construction and property round-trips.
- The dialog is not shown (no user interaction); only the getters and
- setters are exercised. Requires a display.
- *)
- FROM Gio IMPORT g_application_run, g_application_quit;
- FROM GtkApplication IMPORT gtk_application_new;
- FROM GtkFileDialog IMPORT gtk_file_dialog_new, gtk_file_dialog_set_title,
- gtk_file_dialog_get_title, gtk_file_dialog_set_modal,
- gtk_file_dialog_get_modal, gtk_file_dialog_set_initial_name,
- gtk_file_dialog_get_initial_name, gtk_file_dialog_set_accept_label,
- gtk_file_dialog_get_accept_label;
- FROM GObject IMPORT g_object_unref;
- FROM GtkUtils IMPORT Connect, CStrToM2;
- FROM SYSTEM IMPORT ADDRESS, ADR;
- FROM libc IMPORT printf;
- CONST
- AppId = "org.example.m2gtk4.TestFileDialog";
- VAR
- app: ADDRESS;
- passed: BOOLEAN;
- PROCEDURE OnActivate (application: ADDRESS; data: ADDRESS);
- VAR
- dialog: ADDRESS;
- buf: ARRAY [0..63] OF CHAR;
- ok: BOOLEAN;
- BEGIN
- ok := TRUE;
- dialog := gtk_file_dialog_new();
- IF dialog = NIL THEN
- printf("file dialog not created\n");
- ok := FALSE
- ELSE
- gtk_file_dialog_set_title(dialog, "Pick a file");
- CStrToM2(gtk_file_dialog_get_title(dialog), buf);
- IF (buf[0] # 'P') OR (buf[11] # 0C) THEN
- printf("title wrong: [%s]\n", buf);
- ok := FALSE
- END;
- gtk_file_dialog_set_modal(dialog, 1);
- IF gtk_file_dialog_get_modal(dialog) # 1 THEN ok := FALSE END;
- gtk_file_dialog_set_initial_name(dialog, "hello.txt");
- CStrToM2(gtk_file_dialog_get_initial_name(dialog), buf);
- IF (buf[0] # 'h') OR (buf[9] # 0C) THEN
- printf("initial name wrong: [%s]\n", buf);
- ok := FALSE
- END;
- gtk_file_dialog_set_accept_label(dialog, "Open");
- CStrToM2(gtk_file_dialog_get_accept_label(dialog), buf);
- IF (buf[0] # 'O') OR (buf[4] # 0C) THEN
- printf("accept label wrong: [%s]\n", buf);
- ok := FALSE
- END;
- g_object_unref(dialog)
- END;
- passed := ok;
- g_application_quit(application)
- END OnActivate;
- VAR
- rc: INTEGER;
- BEGIN
- passed := FALSE;
- app := gtk_application_new(AppId, 0);
- IF app = NIL THEN
- printf("test_filedialog: FAIL (no app)\n");
- HALT(1)
- END;
- Connect(app, "activate", ADR(OnActivate), NIL);
- rc := g_application_run(app, 0, NIL);
- IF passed THEN
- printf("test_filedialog: PASS\n");
- HALT(0)
- ELSE
- printf("test_filedialog: FAIL\n");
- HALT(1)
- END
- END test_filedialog.
|