#include "Button.hpp" #include #include "Label.hpp" #include "graphics/core/DrawContext.hpp" #include "graphics/core/Batch2D.hpp" using namespace gui; Button::Button(const std::shared_ptr& content, glm::vec4 padding) : Panel(glm::vec2(), padding, 0) { glm::vec4 margin = getMargin(); setSize(content->getSize()+ glm::vec2(padding[0]+padding[2]+margin[0]+margin[2], padding[1]+padding[3]+margin[1]+margin[3])); add(content); setScrollable(false); setHoverColor(glm::vec4(0.05f, 0.1f, 0.15f, 0.75f)); setPressedColor(glm::vec4(0.0f, 0.0f, 0.0f, 0.95f)); content->setInteractive(false); } Button::Button( const std::wstring& text, glm::vec4 padding, const onaction& action, glm::vec2 size ) : Panel(size, padding, 0) { if (size.y < 0.0f) { size = glm::vec2( glm::max(padding.x + padding.z + text.length()*8, size.x), glm::max(padding.y + padding.w + 16, size.y) ); } setSize(size); if (action) { listenAction(action); } setScrollable(false); label = std::make_shared