diff options
Diffstat (limited to 'include/gui')
-rw-r--r-- | include/gui/Button.hpp | 40 |
1 files changed, 40 insertions, 0 deletions
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 <string> +#include <SFML/Graphics/Text.hpp> + +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 |