+static gchar * interface_file_chooser (AppData * appdata, GtkFileChooserAction action)
+{
+ GtkWidget *dialog;
+ gchar *filename = NULL;
+
+ dialog = hildon_file_chooser_dialog_new (GTK_WINDOW (appdata->window), action);
+ gtk_widget_show_all (GTK_WIDGET (dialog));
+
+ if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) {
+ filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
+ }
+
+ gtk_widget_destroy(dialog);
+ return filename;
+}
+
+static void cb_example_file_save (GtkWidget * w, AppData * data)
+{
+ gchar *filename = NULL;
+ filename = interface_file_chooser (data, GTK_FILE_CHOOSER_ACTION_SAVE);
+
+ if (filename == NULL) {
+ filename = "NULL";
+ }
+ else {
+ FILE * f = fopen (filename, "w");
+ fprintf (f, "This file was generated by Hildon File Chooser example.");
+ fclose (f);
+ }
+
+ g_print ("File saved as %s\n", filename);
+}
+