X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=interface.c;h=e1a2069208f5b2c095b27d922c113c9b2a7af77f;hb=3990747f9bf2f88dba5071eecadac28474edd293;hp=b5381c9bfd883c7a84167b022a64c5ca0385930d;hpb=00f19ab354710c1f41deba65b92af335317b25e5;p=xboard.git diff --git a/interface.c b/interface.c index b5381c9..e1a2069 100644 --- a/interface.c +++ b/interface.c @@ -31,6 +31,7 @@ # define N_(s) s #endif +extern GtkWidget *GUI_Window; GdkPixbuf *load_pixbuf(char *filename,int size) @@ -50,19 +51,52 @@ GdkPixbuf *load_pixbuf(char *filename,int size) return image; } -void GUI_SetAspectRatio(ratio) - int ratio; +void +FileNamePopUp(label, def, proc, openMode) + char *label; + char *def; + FileProc proc; + char *openMode; { - /* sets the aspect ration of the main window */ - GdkGeometry hints; - extern GtkWidget *GUI_Window; + /* 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 + { + printf( "DEBUG: before call\n"); + /* TODO add indec */ + (*proc)(f, 0, filename); + printf( "DEBUG: after call\n"); + } + g_free (filename); + }; + + gtk_widget_destroy (dialog); + ModeHighlight(); + + return; - hints.min_aspect = ratio; - hints.max_aspect = ratio; - - gtk_window_set_geometry_hints (GTK_WINDOW (GUI_Window), - GTK_WIDGET (GUI_Window), - &hints, - GDK_HINT_ASPECT); - return; }