#include #include static gpointer do_dialog(gpointer data) { GtkWidget * dialog; gint response; gchar * dir; g_debug("do_dialog ()"); dialog = gtk_file_chooser_dialog_new("Select Folder", NULL, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); dir = getenv("HOME"); gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), dir); response = gtk_dialog_run(GTK_DIALOG (dialog)); if (response == GTK_RESPONSE_ACCEPT) { gchar *filename; filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); if (filename != NULL) { g_debug("Filename is (%s)", filename); g_free(filename); } } gtk_widget_destroy(dialog); gtk_main_quit(); return FALSE; } int main (int argc, char *argv[]) { gtk_init (&argc, &argv); g_idle_add((GSourceFunc)do_dialog, NULL); gtk_main (); return 0; }