#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_text_dialog = false; bool __quit_scenes_text_dialog = false; bool __started_text_dialog = false; bool __update_text = false; uint64_t __cur_button_index_text_dialog = -1; uint64_t __cur_button_index_text_dialog_down = -1; std::vector> __buttons_text_dialog{}; std::shared_ptr __mouse_text_dialog{}; std::shared_ptr __level_name_object{}; std::string __level_name_text = "LEVEL NAME"; std::function __text_dialog_finalizer; void __quitTextDialog() { __quit_scenes_text_dialog = true; } void __quitCallback_TextDialog(void * /*UNUSED*/, Button * /*UNUSED*/) { __quitTextDialog(); } void __handleKeyUp_TextDialog(SDL_Keycode key, SDLPP::Scene & /*UNUSED*/) { switch (key) { case SDLK_ESCAPE: __level_name_text = ""; // fallthrough case SDLK_RETURN: __quitTextDialog(); break; default: break; } } std::shared_ptr createSceneTextDialog(std::shared_ptr &renderer) { 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_text_dialog = std::make_shared(0.01, 0.01, 0, 0, renderer); __mouse_text_dialog->setMinWidth(1); __mouse_text_dialog->setMinHeight(1); __mouse_text_dialog->setAlignment(SDLPP::OBJ_CENTER, SDLPP::OBJ_CENTER); __mouse_text_dialog->setId(EDITOR_MOUSE_ID); __mouse_text_dialog->setColiderColor("#00FF00"); __mouse_text_dialog->addCollision(SDLPP::RectColider({ 0, 0 }, { 1, 1 })); scene->addObject(__mouse_text_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_text_dialog.emplace_back(std::make_shared