# define N_(s) s
#endif
+extern GtkWidget *GUI_Window;
GdkPixbuf *load_pixbuf(char *filename,int size)
return image;
}
-void GUI_DisplayTitle(text)
- char *text;
+void
+FileNamePopUp(label, def, proc, openMode)
+ char *label;
+ char *def;
+ FileProc proc;
+ char *openMode;
{
- char title[MSG_SIZ];
- extern GtkWidget *GUI_Window;
+ /* TODO:
+ * implement look for certain file types
+ * use save/load button depending on what function is calling
+ */
- if (text == NULL) text = "";
+ GtkWidget *dialog;
- /* todo
- if (appData.titleInWindow) {
- i = 0;
- XtSetArg(args[i], XtNlabel, text); i++;
- XtSetValues(titleWidget, args, i);
- } */
+ 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;
- if (*text != NULLCHAR) {
- strcpy(title, text);
- } else if (appData.icsActive) {
- sprintf(title, "%s: %s", programName, appData.icsHost);
- } else if (appData.cmailGameName[0] != NULLCHAR) {
- sprintf(title, "%s: %s", programName, "CMail");
- } else if (appData.noChessProgram) {
- strcpy(title, programName);
- } else {
- sprintf(title, "%s: %s", programName, first.tidy);
- }
- gtk_window_set_title(GTK_WINDOW(GUI_Window),title);
-}
+ filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
-void GUI_SetAspectRatio(ratio)
- int ratio;
-{
- /* sets the aspect ration of the main window */
- GdkGeometry hints;
- extern GtkWidget *GUI_Window;
+ //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;
- 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;
}