int board_load_dialog (window_board_t *win, int append) { GtkWidget *dialog; dialog = gtk_file_chooser_dialog_new (_("Open File"), GTK_WINDOW (win->window), GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); add_filters (GTK_FILE_CHOOSER (dialog)); if (win->filename) { char *cwd = g_path_get_dirname (win->filename); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), cwd); g_free (cwd); gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog), win->filename); } int ret = 0; while (ret == 0) { if (gtk_dialog_run (GTK_DIALOG (dialog)) != GTK_RESPONSE_ACCEPT) break; char *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); ret = board_load_popup (win, append, filename); g_free (filename); } gtk_widget_destroy (dialog); return ret; }
static void jump_menu_select (GtkWidget *recentchooser, char *unused) { char *filename = gtk_recent_chooser_get_current_uri (GTK_RECENT_CHOOSER (recentchooser)); if (strncmp (filename, "file://", sizeof ("file://") - 1)) return; board_load_popup (win, 0, filename + sizeof ("file://") - 1); }