back to scratko.xyz
aboutsummaryrefslogtreecommitdiff
path: root/menu_callbacks.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'menu_callbacks.cpp')
-rw-r--r--menu_callbacks.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/menu_callbacks.cpp b/menu_callbacks.cpp
index d43d848..a48b899 100644
--- a/menu_callbacks.cpp
+++ b/menu_callbacks.cpp
@@ -5,9 +5,12 @@
#include "menu_callbacks.hpp"
#include "solution_algorithm.hpp"
+#include "gameplay.hpp"
+#include "img_handler.hpp"
void load_file_callback(Fl_Widget *sender, void*)
{
+ const char *path = nullptr;
auto dialog = Fl_Native_File_Chooser{};
dialog.type(Fl_Native_File_Chooser::BROWSE_FILE);
dialog.filter("JPEG Files (*.jpg)\tPNG Files (*.png)");
@@ -19,7 +22,11 @@ void load_file_callback(Fl_Widget *sender, void*)
dialog.options(Fl_Native_File_Chooser::SAVEAS_CONFIRM |
Fl_Native_File_Chooser::NEW_FOLDER);
if (dialog.show() == 0)
- printf("%s\n", dialog.filename());
+ path = dialog.filename();
+ ImageHandler ih(path);
+ ih.load_img();
+ ih.resize_img();
+ ih.save_img();
}
void exit_callback(Fl_Widget *w, void*)
@@ -29,10 +36,16 @@ void exit_callback(Fl_Widget *w, void*)
void solve_problem_callback(Fl_Widget *w, void *gp)
{
- std::unique_ptr<ASearch> algorithm =
- ASearch::Start(reinterpret_cast<GameParams*>(gp));
+ GameParams *game = reinterpret_cast<GameParams*>(gp);
+ std::unique_ptr<ASearch> algorithm = ASearch::Start(game);
Node *goal = algorithm->FindSolution();
algorithm->ShowSolution(goal);
+ int answer = fl_choice("Play again?", "No", "Yes", nullptr);
+ if(answer)
+ PuzzleGame::StartGame(game);
+ else
+ game->win->hide();
+
}
void about_callback(Fl_Widget *w, void*)