#include #include #include #include #include #include #include #include namespace psemek::ui { std::shared_ptr element_factory::make_button() { return nullptr; } std::shared_ptr element_factory::make_button(std::string text) { auto b = make_button(); if (b) { auto l = make_label(std::move(text)); if (l) { l->set_valign(label::valignment::center); l->set_halign(label::halignment::center); l->set_overflow(label::overflow_mode::ellipsis); b->set_label(l); } } return b; } std::shared_ptr element_factory::make_button(gfx::texture_view_2d icon) { auto b = make_button(); if (b) { auto i = make_image_view(icon); if (i) { i->set_downscale(false); i->set_upscale(false); b->set_icon(i); } } return b; } std::shared_ptr