From e308d77b06405b91885cf6f97c0dc2a1b70679ef Mon Sep 17 00:00:00 2001 From: dec05eba Date: Tue, 11 May 2021 14:24:52 +0200 Subject: Improve file saving gui --- include/gui/Button.hpp | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 include/gui/Button.hpp (limited to 'include/gui') diff --git a/include/gui/Button.hpp b/include/gui/Button.hpp new file mode 100644 index 0000000..ba6997b --- /dev/null +++ b/include/gui/Button.hpp @@ -0,0 +1,40 @@ +#pragma once + +#include "../RoundedRectangle.hpp" +#include +#include + +namespace sf { + class Event; + class Font; + class RenderTarget; + class Shader; +} + +namespace QuickMedia { + enum ButtonEvent { + BUTTON_EVENT_NONE = 0, + BUTTON_EVENT_CLICKED = 1 + }; + + class Button { + public: + Button(const std::string &label, sf::Font *font, unsigned int character_size, float width, sf::Shader *rounded_rectangle_shader, float scale = 1.0f); + + ButtonEvent on_event(sf::Event &event); + void draw(sf::RenderTarget &target); + + void set_background_color(sf::Color color); + void set_position(sf::Vector2f pos); + + sf::Vector2f get_position() const; + float get_width() const; + float get_height() const; + private: + sf::Text label; + RoundedRectangle background; + sf::Color background_color; + float scale; + bool clicked_inside = false; + }; +} \ No newline at end of file -- cgit v1.2.3