--- a/demo/talkatudemowindow.c Sat Dec 11 19:59:22 2021 -0600
+++ b/demo/talkatudemowindow.c Sun Jan 30 17:07:01 2022 -0600
@@ -50,28 +50,12 @@
G_DEFINE_TYPE(TalkatuDemoWindow, talkatu_demo_window, GTK_TYPE_WINDOW);
-talkatu_demo_window_insert_html_cb(GtkButton *toggle, gpointer data) {
+talkatu_demo_window_insert_html_response_cb(GtkNativeDialog *dialog, + gint response, gpointer data) TalkatuDemoWindow *window = TALKATU_DEMO_WINDOW(data);
- GtkWidget *dialog = NULL;
- GtkFileFilter *filter = NULL;
- dialog = gtk_file_chooser_dialog_new(
- GTK_FILE_CHOOSER_ACTION_OPEN,
- "OK", GTK_RESPONSE_ACCEPT,
- "Cancel", GTK_RESPONSE_REJECT,
- filter = gtk_file_filter_new();
- gtk_file_filter_set_name(filter, "HTML files");
- gtk_file_filter_add_pattern(filter, "*.html");
- gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter);
- res = gtk_dialog_run(GTK_DIALOG(dialog));
- if(res == GTK_RESPONSE_ACCEPT) {
+ if(response == GTK_RESPONSE_ACCEPT) { gchar *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
@@ -90,32 +74,43 @@
- gtk_widget_destroy(dialog);
+ gtk_native_dialog_destroy(dialog); + g_object_unref(dialog); -talkatu_demo_window_insert_markdown_cb(GtkButton *toggle, gpointer data) {
+talkatu_demo_window_insert_html_cb(GtkButton *toggle, gpointer data) { TalkatuDemoWindow *window = TALKATU_DEMO_WINDOW(data);
- GtkWidget *dialog = NULL;
+ GtkFileChooserNative *dialog = NULL; GtkFileFilter *filter = NULL;
- dialog = gtk_file_chooser_dialog_new(
- _("insert markdown..."),
+ dialog = gtk_file_chooser_native_new( GTK_FILE_CHOOSER_ACTION_OPEN,
- "OK", GTK_RESPONSE_ACCEPT,
- "Cancel", GTK_RESPONSE_REJECT,
filter = gtk_file_filter_new();
- gtk_file_filter_set_name(filter, "Markdown files");
- gtk_file_filter_add_pattern(filter, "*.md");
+ gtk_file_filter_set_name(filter, "HTML files"); + gtk_file_filter_add_pattern(filter, "*.html"); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter);
- res = gtk_dialog_run(GTK_DIALOG(dialog));
- if(res == GTK_RESPONSE_ACCEPT) {
+ g_signal_connect(dialog, "response", + G_CALLBACK(talkatu_demo_window_insert_html_response_cb), + gtk_native_dialog_set_modal(GTK_NATIVE_DIALOG(dialog), TRUE); + gtk_native_dialog_show(GTK_NATIVE_DIALOG(dialog)); +talkatu_demo_window_insert_markdown_response_cb(GtkNativeDialog *dialog, + gint response, gpointer data) + TalkatuDemoWindow *window = TALKATU_DEMO_WINDOW(data); + if(response == GTK_RESPONSE_ACCEPT) { gchar *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
@@ -134,7 +129,34 @@
- gtk_widget_destroy(dialog);
+ gtk_native_dialog_destroy(dialog); + g_object_unref(dialog); +talkatu_demo_window_insert_markdown_cb(GtkButton *toggle, gpointer data) { + TalkatuDemoWindow *window = TALKATU_DEMO_WINDOW(data); + GtkFileChooserNative *dialog = NULL; + GtkFileFilter *filter = NULL; + dialog = gtk_file_chooser_native_new( + _("Insert markdown..."), + GTK_FILE_CHOOSER_ACTION_OPEN, + filter = gtk_file_filter_new(); + gtk_file_filter_set_name(filter, "Markdown files"); + gtk_file_filter_add_pattern(filter, "*.md"); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter); + g_signal_connect(dialog, "response", + G_CALLBACK(talkatu_demo_window_insert_markdown_response_cb), + gtk_native_dialog_set_modal(GTK_NATIVE_DIALOG(dialog), TRUE); + gtk_native_dialog_show(GTK_NATIVE_DIALOG(dialog));