diff --git a/src/GUIStuff/ElementHelpers/TextBoxHelpers.cpp b/src/GUIStuff/ElementHelpers/TextBoxHelpers.cpp index be784ad..14152c9 100644 --- a/src/GUIStuff/ElementHelpers/TextBoxHelpers.cpp +++ b/src/GUIStuff/ElementHelpers/TextBoxHelpers.cpp @@ -61,7 +61,7 @@ void input_text_field(GUIManager& gui, const char* id, std::string_view name, st }); } -void input_scalar(GUIManager& gui, const char* id, uint8_t* val, uint8_t minVal, uint8_t maxVal, const TextBoxScalarOptions& options) { +template <> void input_scalar(GUIManager& gui, const char* id, uint8_t* val, uint8_t minVal, uint8_t maxVal, const TextBoxScalarOptions& options) { InputManager::TextInputProperties textInputProps { .inputType = SDL_TextInputType::SDL_TEXTINPUT_TYPE_NUMBER, .capitalization = SDL_Capitalization::SDL_CAPITALIZE_NONE, @@ -76,13 +76,13 @@ void input_scalar(GUIManager& gui, const char* id, uint8_t* val, uint8_t minVal, d.fromStr = [minVal, maxVal](const std::string& a) { if(a.empty()) return minVal; - uint8_t toRet; + uint32_t toRet; std::stringstream ss; ss << a; ss >> toRet; if(ss.fail()) return minVal; - return std::clamp(toRet, minVal, maxVal); + return static_cast(std::clamp(toRet, static_cast(minVal), static_cast(maxVal))); }; d.toStr = [options](const uint8_t& a) { return std::to_string(static_cast(a)); diff --git a/src/GUIStuff/ElementHelpers/TextBoxHelpers.hpp b/src/GUIStuff/ElementHelpers/TextBoxHelpers.hpp index d6f9317..cf1cf08 100644 --- a/src/GUIStuff/ElementHelpers/TextBoxHelpers.hpp +++ b/src/GUIStuff/ElementHelpers/TextBoxHelpers.hpp @@ -49,7 +49,6 @@ struct TextBoxHexColorOptions { void input_color_component_255(GUIManager& gui, const char* id, float* val, const TextBoxOptions& options = {}); void input_text(GUIManager& gui, const char* id, std::string* val, const TextBoxOptions& options = {}); void input_text_field(GUIManager& gui, const char* id, std::string_view name, std::string* val, const TextBoxOptions& options = {}); -void input_scalar(GUIManager& gui, const char* id, uint8_t* val, uint8_t minVal, uint8_t maxVal, const TextBoxScalarOptions& options = {}); void input_path(GUIManager& gui, const char* id, std::filesystem::path* val, const TextBoxPathOptions& options = {}); void input_path_field(GUIManager& gui, const char* id, std::string_view name, std::filesystem::path* val, const TextBoxPathOptions& options = {}); @@ -94,6 +93,8 @@ template void input_scalar(GUIManager& gui, const char* id, T* val, gui.element>(id, d); } +template <> void input_scalar(GUIManager& gui, const char* id, uint8_t* val, uint8_t minVal, uint8_t maxVal, const TextBoxScalarOptions& options); + template void input_scalars_field(GUIManager& gui, const char* id, std::string_view name, TContainer* val, size_t elemCount, T minVal, T maxVal, const TextBoxScalarOptions& options = {}) { gui.new_id(id, [&] { left_to_right_line_layout(gui, [&]() {