X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=interface.c;h=5d7b5522a2cee85c6c1f0eb1e600696bca7d57c4;hb=refs%2Ftags%2Fgtk-20100206;hp=ef59a5f874152f7c283709208e97cbde180abbd6;hpb=52950958d0291eb2b2167319f5863a43f2795669;p=xboard.git diff --git a/interface.c b/interface.c index ef59a5f..5d7b552 100644 --- a/interface.c +++ b/interface.c @@ -1,3 +1,24 @@ +/* + * interface.c -- gtk-interface + * + * Copyright 2009, 2010 Free Software Foundation, Inc. + * + * GNU XBoard is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * GNU XBoard is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see http://www.gnu.org/licenses/. * + * + *------------------------------------------------------------------------ + ** See the file ChangeLog for a revision history. */ + #include "config.h" #include @@ -31,6 +52,7 @@ # define N_(s) s #endif +extern GtkWidget *GUI_Window; GdkPixbuf *load_pixbuf(char *filename,int size) @@ -49,3 +71,51 @@ GdkPixbuf *load_pixbuf(char *filename,int size) } return image; } + +void +FileNamePopUp(label, def, proc, openMode) + char *label; + char *def; + FileProc proc; + char *openMode; +{ + /* TODO: + * implement look for certain file types + * use save/load button depending on what function is calling + */ + + GtkWidget *dialog; + + dialog = gtk_file_chooser_dialog_new (label, + GTK_WINDOW(GUI_Window), + GTK_FILE_CHOOSER_ACTION_OPEN, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, + NULL); + if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) + { + char *filename; + FILE *f; + + filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); + + //see loadgamepopup + f = fopen(filename, openMode); + if (f == NULL) + { + DisplayError(_("Failed to open file"), errno); + } + else + { + /* TODO add indec */ + (*proc)(f, 0, filename); + } + g_free (filename); + }; + + gtk_widget_destroy (dialog); + ModeHighlight(); + + return; + +}