#ifndef BUTTON_HPP
#define BUTTON_HPP
#include "commons.hpp"
class Button : public sf::Sprite{

public:
    Button(std::string path);
    //upon creating a button, its state is set to off by default, you must activate it maually after declaration
    Button();
    void turnOn();
    void turnOff();
    bool isOn();
    int getClicks();
    //buttons auto-detect if they are pressed, you just have to passa mouse-event to them
    void handleMouseEvent(sf::Event& event);
    void update(sf::Vector2f mousePosition);

protected:
    int _xSize;
    int _ySize;
    sf::Texture _texture;
    bool inside(sf::Vector2f position);

private:
    int _clicks;
    int _state;

    void initTexture(std::string path);
};
#endif // BUTTON_HPP
