fix empty text rendering, remove useless regex in numeric input

This commit is contained in:
Andrea Blankenstijn 2021-07-20 12:11:20 +02:00
parent 30c4205dab
commit 57a95154c2
2 changed files with 8 additions and 13 deletions

View file

@ -2,8 +2,6 @@
#define BWIDGETS_NUMERIC_INPUT_HPP_
#include <limits>
// TODO: we don't really need any regex…
#include <regex>
#include <type_traits>
#include <basic_widgets/core/math.hpp>
@ -156,11 +154,7 @@ namespace bwidgets::widget
if constexpr(std::is_signed_v<T>)
{
std::string displayed_value = Input<T>::input_text();
if (input.at(0) == '-'
&& !std::regex_search(
displayed_value,
std::regex("[^\\s]")
))
if (input.at(0) == '-' && displayed_value.empty())
valid = true;
}
return valid;

View file

@ -67,22 +67,23 @@ namespace bwidgets::core
const SDL_Color& bg)
{
std::function<SDL_Surface* ()> renderer;
const char* c_str = str.empty() ? " " : str.c_str();
switch (m)
{
case RenderMode::BLENDED:
renderer = [&fg, &str, this]() {
return TTF_RenderUTF8_Blended(c_pod, str.c_str(), fg);
renderer = [&fg, c_str, this]() {
return TTF_RenderUTF8_Blended(c_pod, c_str, fg);
};
break;
case RenderMode::SHADED:
renderer = [&bg, &fg, &str, this]() {
return TTF_RenderUTF8_Shaded(c_pod, str.c_str(), fg, bg);
renderer = [&bg, &fg, c_str, this]() {
return TTF_RenderUTF8_Shaded(c_pod, c_str, fg, bg);
};
break;
case RenderMode::SOLID:
renderer = [&fg, &str, this]() {
return TTF_RenderUTF8_Solid(c_pod, str.c_str(), fg);
renderer = [&fg, c_str, this]() {
return TTF_RenderUTF8_Solid(c_pod, c_str, fg);
};
break;
}