#pragma once #include #include #include "GuiElement.h" #include "Texture.h" #include "../TextureManager.h" class GuiButton : public GuiElement { public: GuiButton() = default; GuiButton(const std::string& filePath, Vector2f pos, Vector2f size, TextureManager* manager); ~GuiButton() override; virtual void Draw() const override; virtual void Update(float elapsedSec) override; void SetOnClick(std::function onClick) { m_OnClick = onClick; } private: Texture* m_Texture{ nullptr }; Vector2f m_Position; Vector2f m_Size; bool m_IsHovered{ false }; bool m_IsPressed{ false }; bool m_IsPrimed{ false }; std::function m_OnClick{ []() { std::cout << "Button not implemented" << std::endl; } }; };