#include "toolbar.h" #include "gfx/gl/uiShader.h" #include "ui/iconButton.h" #include "ui/uiComponent.h" #include "uiComponentPlacer.h" #include #include Toolbar::Toolbar(const std::initializer_list & initInfo) : UIComponent {{{}, {}}} { UIComponentPlacer placer {{10, 10}, 5, 1}; for (const auto & ii : initInfo) { icons.create(ii.first, placer.next(ICON_SIZE), ii.second); } this->position.size = placer.getLimit(); } void Toolbar::render(const UIShader & uiShader, const Position & parentPos) const { uiShader.icon.use(); const auto absPos = this->position + parentPos; icons.apply(&UIComponent::render, uiShader, absPos); } bool Toolbar::handleInput(const SDL_Event & e, const Position & parentPos) { const auto absPos = this->position + parentPos; if (absPos & e.button) { icons.applyOne(&UIComponent::handleInput, e, absPos); return true; } return false; }