X-Git-Url: https://harishankar.org/repos/?p=wordblah.git;a=blobdiff_plain;f=wordblox_player.c;fp=wordblox_player.c;h=9560ac8eabc32737c67c6a5ad3ddddff02043247;hp=d1f09294fb197f3ae8e1a54b6f26b3658accb551;hb=7defe51e8a1da9feec6319defa7c906fcb735726;hpb=8f3a3d44db5d297336dc1138193514c6d79d080e diff --git a/wordblox_player.c b/wordblox_player.c index d1f0929..9560ac8 100644 --- a/wordblox_player.c +++ b/wordblox_player.c @@ -535,15 +535,64 @@ void on_menu_reveal_solution_activate (GtkMenuItem *item, GtkDrawingArea *area) } /* slot for load grid state menu */ -void on_menu_load_grid_state_activate (GtkMenuItem *item, gpointer *data) +void on_menu_load_grid_state_activate (GtkMenuItem *item, GtkDrawingArea *area) { - /* TODO */ + GtkWidget *dialog; + GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN; + gint res; + dialog = gtk_file_chooser_dialog_new (OPEN_FILE, GTK_WINDOW (main_window), + action, + "_Cancel", + GTK_RESPONSE_CANCEL, + "_Open", + GTK_RESPONSE_ACCEPT, + NULL + ); + + res = gtk_dialog_run (GTK_DIALOG (dialog)); + if (res == GTK_RESPONSE_ACCEPT) + { + char *filename; + filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); + load_user_data (&app_data, filename); + g_free (filename); + } + + gtk_widget_destroy (dialog); + + gtk_widget_queue_draw_area (GTK_WIDGET(area), 0, 0, + app_data.puzzle.grid_size*GRID_PIXELS+10, + app_data.puzzle.grid_size*GRID_PIXELS+10); + + update_clue_items (); } /* slot for save grid state menu */ void on_menu_save_grid_state_activate (GtkMenuItem *item, gpointer *data) { - /* TODO */ + if (app_data.is_loaded == false) + return; + + GtkWidget *dialog; + GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_SAVE; + gint res; + dialog = gtk_file_chooser_dialog_new (SAVE_FILE, GTK_WINDOW(main_window), + action, + "_Cancel", + GTK_RESPONSE_CANCEL, + "_Save", + GTK_RESPONSE_ACCEPT, + NULL); + res = gtk_dialog_run (GTK_DIALOG (dialog)); + if (res == GTK_RESPONSE_ACCEPT) + { + char *filename; + filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); + save_user_data (&app_data, filename); + g_free (filename); + } + + gtk_widget_destroy (dialog); } /* slot for exit menu */