28 #include "sdl_select.hpp"
29 #include "sdl_widget.hpp"
30 #include "sdl_button.hpp"
31 #include "sdl_buttons.hpp"
32 #include "sdl_input_widgets.hpp"
34 static const SDL_Color labelmouseovercolor = { 0, 0x80, 0, 0x60 };
35 static const SDL_Color labelbackgroundcolor = { 0x69, 0x66, 0x63, 0xff };
36 static const SDL_Color labelhighlightcolor = { 0xcd, 0xca, 0x35, 0x60 };
37 static const SDL_Color labelfontcolor = { 0xd1, 0xcf, 0xcd, 0xff };
39 SdlSelectWidget::SdlSelectWidget(SDL_Renderer* renderer, std::string label, SDL_Rect rect)
40 :
SdlWidget(renderer, rect, true), _text(std::move(label)), _mouseover(false), _highlight(false)
42 update_text(renderer);
45 SdlSelectWidget::SdlSelectWidget(
SdlSelectWidget&& other) noexcept =
default;
47 SdlSelectWidget::~SdlSelectWidget() =
default;
49 bool SdlSelectWidget::set_mouseover(SDL_Renderer* renderer,
bool mouseOver)
51 _mouseover = mouseOver;
52 return update_text(renderer);
55 bool SdlSelectWidget::set_highlight(SDL_Renderer* renderer,
bool highlight)
57 _highlight = highlight;
58 return update_text(renderer);
61 bool SdlSelectWidget::update_text(SDL_Renderer* renderer)
64 std::vector<SDL_Color> colors = { labelbackgroundcolor };
66 colors.push_back(labelhighlightcolor);
68 colors.push_back(labelmouseovercolor);
69 if (!fill(renderer, colors))
71 return SdlWidget::update_text(renderer, _text, labelfontcolor);