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.cpp35
1 files changed, 29 insertions, 6 deletions
diff --git a/menu_callbacks.cpp b/menu_callbacks.cpp
index a48b899..ffc1aae 100644
--- a/menu_callbacks.cpp
+++ b/menu_callbacks.cpp
@@ -1,4 +1,5 @@
#include <FL/Fl_Native_File_Chooser.H>
+#include <FL/fl_message.H>
#include <memory>
#include <stdio.h>
#include <string>
@@ -8,12 +9,26 @@
#include "gameplay.hpp"
#include "img_handler.hpp"
+void new_game_callback(Fl_Widget*, void *gp)
+{
+ PuzzleGame::StartGame(reinterpret_cast<GameParams*>(gp));
+}
+
+static bool check_correct_path_to_img(const char *path)
+{
+ if(path == nullptr)
+ return false;
+ std::string p(path);
+ std::string ext = p.substr(p.find_last_of('.'));
+ return ext == ".png" || ext == ".jpg";
+}
+
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)");
+ dialog.filter("JPEG Files\t*.jpg\nPNG Files\t*.png");
#if defined(_WIN32)
dialog.directory((string {getenv("HOMEPATH")} + "\\Desktop").c_str());
#else
@@ -23,10 +38,14 @@ void load_file_callback(Fl_Widget *sender, void*)
Fl_Native_File_Chooser::NEW_FOLDER);
if (dialog.show() == 0)
path = dialog.filename();
- ImageHandler ih(path);
- ih.load_img();
- ih.resize_img();
- ih.save_img();
+ if(check_correct_path_to_img(path)) {
+ ImageHandler ih(path);
+ ih.load_img();
+ ih.resize_img();
+ ih.save_img();
+ fl_message_title("Info");
+ fl_message("Image successfully added");
+ }
}
void exit_callback(Fl_Widget *w, void*)
@@ -45,9 +64,13 @@ void solve_problem_callback(Fl_Widget *w, void *gp)
PuzzleGame::StartGame(game);
else
game->win->hide();
-
}
void about_callback(Fl_Widget *w, void*)
{
+ fl_message_title("About");
+ fl_message("This app is devoted to my friends, to who I'm appreciative for"
+ " their support:\nIlya Korsak\nMaxim Fadeev\n\n"
+ "For all questions, please contact me:\n"
+ "m@@scratko.xyz");
}