Button.h 606 bytes
#pragma once
#include <BasicAbstractions/Command.h>
#include <BasicAbstractions/IDrawable.h>
class Button final : public IDrawable {
public:
    Button() = default;
    void set(sf::Vector2f pos, sf::Vector2f size, const std::string& text, size_t font_size, std::unique_ptr<ISelectCommand> ptr_command);
    void select();
    void unselect();
    bool is_position_in(sf::Vector2f pos) const noexcept;
    void push() const;
    void draw_into(sf::RenderWindow& window) const override;
private:
    sf::Text m_text;
    sf::RectangleShape m_rectangle;
    std::unique_ptr<ISelectCommand> m_ptr_command;