bwidgets/inc/basic_widgets/abstract/layout.hpp

32 lines
752 B
C++
Raw Normal View History

2021-06-08 14:30:38 +02:00
#ifndef LAYOUT_HPP
#define LAYOUT_HPP
#include <vector>
2021-07-09 13:50:17 +02:00
#include <basic_widgets/abstract/widget.hpp>
2021-06-08 14:30:38 +02:00
2021-07-10 19:55:53 +02:00
namespace bwidgets::abstract
2021-06-08 14:30:38 +02:00
{
2021-07-10 19:55:53 +02:00
class Layout : public abstract::Widget
{
protected:
std::vector<Widget*> _widgets;
2021-06-08 14:30:38 +02:00
virtual void _update_layout() noexcept = 0;
2021-06-08 14:30:38 +02:00
2021-07-10 19:55:53 +02:00
public:
Widget::Size margins {4, 4};
virtual ~Layout() noexcept;
2021-07-10 19:55:53 +02:00
virtual void add_widget(Widget*);
virtual void handle_event(const SDL_Event&) override;
virtual void render(SDL_Renderer*) override;
virtual void viewport(const SDL_Rect&) noexcept override;
virtual Widget::Size size() const noexcept override = 0;
2021-07-10 19:55:53 +02:00
};
}
2021-06-08 14:30:38 +02:00
#endif