#include "SDL2/SDL_keycode.h" #include "editor_scenes.hpp" #include "../../sdlpp/sdlpp.hpp" #include "../../sdlpp/sdlpp_mouse.hpp" #include "../global_vars.hpp" #include "../objectids.hpp" #include "../editor_visitor.hpp" bool __update_scenes_ok_dialog = false; bool __quit_scenes_ok_dialog = false; bool __started_ok_dialog = false; uint64_t __cur_button_index_ok_dialog = -1; uint64_t __cur_button_index_ok_dialog_down = -1; std::vector> __buttons_ok_dialog{}; std::shared_ptr __mouse_ok_dialog{}; std::function __ok_dialog_finalizer; void __quitOkDialog() { __quit_scenes_ok_dialog = true; } void __quitCallback_OkDialog(void * /*UNUSED*/, Button * /*UNUSED*/) { __quitOkDialog(); } void __handleKeyUp_OkDialog(SDL_Keycode key, SDLPP::Scene & /*UNUSED*/) { switch (key) { case SDLK_ESCAPE: case SDLK_RETURN: __quitOkDialog(); break; default: break; } } std::shared_ptr createSceneOkDialog(std::shared_ptr &renderer, const std::string &text) { auto scene = std::make_shared(renderer); auto bg = std::make_shared(0, 0, 10, 10, renderer, "#00000088", true); bg->setPermanent(); bg->setId(1); scene->addObject(bg); __mouse_ok_dialog = std::make_shared(0.01, 0.01, 0, 0, renderer); __mouse_ok_dialog->setMinWidth(1); __mouse_ok_dialog->setMinHeight(1); __mouse_ok_dialog->setAlignment(SDLPP::OBJ_CENTER, SDLPP::OBJ_CENTER); __mouse_ok_dialog->setId(EDITOR_MOUSE_ID); __mouse_ok_dialog->setColiderColor("#00FF00"); __mouse_ok_dialog->addCollision(SDLPP::RectColider({ 0, 0 }, { 1, 1 })); scene->addObject(__mouse_ok_dialog); ButtonConfig default_button_theme{}; default_button_theme.bg_color = "#FFFFFF88"; default_button_theme.bg_color_highlight = "#FFFFFFBB"; default_button_theme.bg_color_disabled = "#AAAAAA88"; default_button_theme.font_color = "#000000"; default_button_theme.font_color_highlight = "#000000"; default_button_theme.font_color_disabled = "#555555"; default_button_theme.font_outline_color = "#FFFFFF88"; default_button_theme.font_outline_color_highlight = "#FFFFFFAA"; default_button_theme.font_outline_color_disabled = "#787878"; default_button_theme.outline = 0.1; // buttons __buttons_ok_dialog.emplace_back(std::make_shared