X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/7dd00b7efd9ae60b0d30b3df815da2439cef4108..6ae3730169b0c020d90fe20ace77262d19d26a2b:/gtk.c diff --git a/gtk.c b/gtk.c index 9643d19..3c777af 100644 --- 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));