46 lines
887 B
C++
46 lines
887 B
C++
#include <typeinfo>
|
|
|
|
#include "layer.hpp"
|
|
|
|
using namespace game;
|
|
using namespace std;
|
|
|
|
using namespace bwidgets;
|
|
|
|
ui::Layer::Layer(widget::Widget* parent)
|
|
: Widget(parent)
|
|
{
|
|
}
|
|
|
|
void ui::Layer::_handle_font_change(core::Font* f)
|
|
{
|
|
_for_widgets([f](Widget& w) {
|
|
try {
|
|
auto& handler = dynamic_cast<FontHandler&>(w);
|
|
handler.font(f);
|
|
} catch (const std::bad_cast&) {}
|
|
});
|
|
}
|
|
|
|
ui::Layer* ui::Layer::handle_event(const SDL_Event& e)
|
|
{
|
|
_for_widgets([e](Widget& w) {
|
|
w.handle_event(e);
|
|
});
|
|
return this;
|
|
}
|
|
|
|
void ui::Layer::_handle_renderer_change(core::Renderer* r)
|
|
{
|
|
_for_widgets([r](Widget& w) {
|
|
w.renderer(r);
|
|
});
|
|
}
|
|
|
|
void ui::Layer::_handle_rendering()
|
|
{
|
|
_for_widgets([](Widget& w) {
|
|
w.render();
|
|
});
|
|
}
|