bwidgets/input.hpp

39 lines
772 B
C++
Raw Normal View History

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:
virtual void viewport(SDL_Rect vp)
2021-06-11 13:30:33 +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