}
static void
-file_chooser_response (GtkNativeDialog *self,
- int response)
+file_chooser_response (GObject *source,
+ GAsyncResult *result,
+ void *user_data)
{
- gtk_native_dialog_destroy (self);
+ GtkFileDialog *dialog = GTK_FILE_DIALOG (source);
+ GFile *file;
+
+ file = gtk_file_dialog_open_finish (dialog, result, NULL);
+ if (file)
+ {
+ g_print ("File selected: %s", g_file_peek_path (file));
+ g_object_unref (file);
+ }
}
static void
GVariant *parameter,
gpointer user_data)
{
- GtkFileChooserNative *chooser;
-
- chooser = gtk_file_chooser_native_new ("Open file",
- NULL,
- GTK_FILE_CHOOSER_ACTION_OPEN,
- "Open",
- "Cancel");
-
- g_signal_connect (chooser, "response", G_CALLBACK (file_chooser_response), NULL);
+ GtkFileDialog *dialog;
- gtk_native_dialog_show (GTK_NATIVE_DIALOG (chooser));
+ dialog = gtk_file_dialog_new ();
+ gtk_file_dialog_open (dialog, NULL, NULL, NULL, file_chooser_response, NULL);
+ g_object_unref (dialog);
}
static void