Doc tweaks for Solo.
[sgt/puzzles] / gtk.c
diff --git a/gtk.c b/gtk.c
index 9643d19..3c777af 100644 (file)
--- a/gtk.c
+++ b/gtk.c
@@ -73,6 +73,14 @@ struct frontend {
     GtkWidget *cfgbox;
 };
 
+void get_random_seed(void **randseed, int *randseedsize)
+{
+    time_t *tp = snew(time_t);
+    time(tp);
+    *randseed = (void *)tp;
+    *randseedsize = sizeof(time_t);
+}
+
 void frontend_default_colour(frontend *fe, float *output)
 {
     GdkColor col = fe->window->style->bg[GTK_STATE_NORMAL];
@@ -231,6 +239,8 @@ void end_draw(frontend *fe)
 
 static void destroy(GtkWidget *widget, gpointer data)
 {
+    frontend *fe = (frontend *)data;
+    deactivate_timer(fe);
     gtk_main_quit();
 }
 
@@ -415,8 +425,6 @@ void activate_timer(frontend *fe)
 
 static void window_destroy(GtkWidget *widget, gpointer data)
 {
-    frontend *fe = (frontend *)data;
-    deactivate_timer(fe);
     gtk_main_quit();
 }
 
@@ -772,12 +780,10 @@ static frontend *new_window(char *game_id, char **error)
     GtkBox *vbox;
     GtkWidget *menubar, *menu, *menuitem;
     int x, y, n;
-    time_t t;
 
     fe = snew(frontend);
 
-    time(&t);
-    fe->me = midend_new(fe, &t, sizeof(t));
+    fe->me = midend_new(fe, &thegame);
     if (game_id) {
         *error = midend_game_id(fe->me, game_id, FALSE);
         if (*error) {
@@ -789,7 +795,7 @@ static frontend *new_window(char *game_id, char **error)
     midend_new_game(fe->me);
 
     fe->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-    gtk_window_set_title(GTK_WINDOW(fe->window), game_name);
+    gtk_window_set_title(GTK_WINDOW(fe->window), thegame.name);
 #if 0
     gtk_window_set_resizable(GTK_WINDOW(fe->window), FALSE);
 #else
@@ -821,7 +827,7 @@ static frontend *new_window(char *game_id, char **error)
                       GTK_SIGNAL_FUNC(menu_config_event), fe);
     gtk_widget_show(menuitem);
 
-    if ((n = midend_num_presets(fe->me)) > 0 || game_can_configure) {
+    if ((n = midend_num_presets(fe->me)) > 0 || thegame.can_configure) {
         GtkWidget *submenu;
         int i;
 
@@ -846,7 +852,7 @@ static frontend *new_window(char *game_id, char **error)
             gtk_widget_show(menuitem);
         }
 
-       if (game_can_configure) {
+       if (thegame.can_configure) {
             menuitem = gtk_menu_item_new_with_label("Custom...");
             gtk_object_set_data(GTK_OBJECT(menuitem), "user-data",
                                GPOINTER_TO_INT(CFG_SETTINGS));