2021-06-11 13:30:33 +02:00
|
|
|
#ifndef INPUT_HPP
|
|
|
|
#define INPUT_HPP
|
|
|
|
|
|
|
|
#include "widget.hpp"
|
|
|
|
|
|
|
|
template<typename T> class Input : public Widget
|
|
|
|
{
|
|
|
|
protected:
|
|
|
|
SDL_Rect _input_field_area;
|
|
|
|
T _value;
|
|
|
|
|
|
|
|
Input(SDL_Renderer* r) : Widget(r) {}
|
|
|
|
virtual void _update_drawing_areas() = 0;
|
|
|
|
|
|
|
|
public:
|
2021-06-12 23:25:28 +02:00
|
|
|
virtual void viewport(SDL_Rect vp)
|
2021-06-11 13:30:33 +02:00
|
|
|
{
|
2021-06-12 23:25:28 +02:00
|
|
|
Widget::viewport(vp);
|
2021-06-11 13:30:33 +02:00
|
|
|
_update_drawing_areas();
|
|
|
|
}
|
|
|
|
|
|
|
|
virtual void render()
|
|
|
|
{
|
|
|
|
Widget::render();
|
|
|
|
|
|
|
|
SDL_Rect old_vp;
|
|
|
|
|
|
|
|
SDL_RenderGetViewport(_renderer, &old_vp);
|
|
|
|
SDL_RenderSetViewport(_renderer, &_viewport);
|
|
|
|
|
|
|
|
SDL_SetRenderDrawColor(_renderer, 0, 0, 255, SDL_ALPHA_OPAQUE);
|
|
|
|
SDL_RenderDrawRect(_renderer, &_input_field_area);
|
|
|
|
|
|
|
|
SDL_RenderSetViewport(_renderer, &old_vp);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|