#include "Button.hpp" #include #include "Label.hpp" #include "graphics/core/Batch2D.hpp" #include "graphics/core/DrawContext.hpp" using namespace gui; Button::Button( GUI& gui, const std::shared_ptr& content, glm::vec4 padding ) : Panel(gui, 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( GUI& gui, const std::wstring& text, glm::vec4 padding, const onaction& action, glm::vec2 size ) : Panel(gui, 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