AsloEngine/asloengine/headers/clickable.hpp
2019-08-29 18:42:28 +02:00

39 lines
No EOL
930 B
C++
Executable file

#pragma once
#include <SFML/Graphics.hpp>
#include "helpers.hpp"
namespace asloengine
{
class Clickable
{
public:
enum ClickAction
{
Nothing, Pressed, Released
};
sf::Mouse::Button click_button;
Clickable(sf::Mouse::Button _click_button);
virtual ~Clickable();
void set_clickable(sf::FloatRect rect, sf::RenderWindow *window);
void update_clickable(sf::FloatRect rect);
bool is_mouse_in() const;
ClickAction get_click_action() const;
bool clicked_press() const;
bool clicked_release() const;
bool clicked_press_and_release() const;
private:
sf::FloatRect clickable_rect;
sf::RenderWindow *clickable_window;
mutable bool pressed = false;
mutable bool clicking = false;
};
}