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" 
   34static const SDL_Color labelmouseovercolor = { 0, 0x80, 0, 0x60 };
 
   35static const SDL_Color labelbackgroundcolor = { 0x69, 0x66, 0x63, 0xff };
 
   36static const SDL_Color labelhighlightcolor = { 0xcd, 0xca, 0x35, 0x60 };
 
   37static const SDL_Color labelfontcolor = { 0xd1, 0xcf, 0xcd, 0xff };
 
   39SdlSelectWidget::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);
 
   45SdlSelectWidget::SdlSelectWidget(
SdlSelectWidget&& other) 
noexcept = 
default;
 
   47SdlSelectWidget::~SdlSelectWidget() = 
default;
 
   49bool SdlSelectWidget::set_mouseover(SDL_Renderer* renderer, 
bool mouseOver)
 
   51  _mouseover = mouseOver;
 
   52  return update_text(renderer);
 
   55bool SdlSelectWidget::set_highlight(SDL_Renderer* renderer, 
bool highlight)
 
   57  _highlight = highlight;
 
   58  return update_text(renderer);
 
   61bool 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);