moved a lot of function from the option menu to gtk
[xboard.git] / interface.c
index b5381c9..e1a2069 100644 (file)
@@ -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;
 }