2#include <SFML/Graphics/RectangleShape.hpp>
3#include <SFML/System/Vector2.hpp>
4#include <unordered_map>
7#include <SFML/Graphics/Color.hpp>
27 sf::RectangleShape backgroundShape;
29 std::unordered_map<std::string, std::variant<unsigned int, float, std::string>> styles = {
30 {
"fontPath",
"src/assets/AdwaitaSans-Regular.ttf"},
33 {
"letterSpacing", 1.f},
34 {
"fillColor", 0x000000FFu},
35 {
"outlineColor", 0xFFFFFFFFu},
36 {
"outlineThickness", 0.f},
37 {
"fontStyle",
"regular"},
38 {
"backgroundColor", 0x00000000u}
41 void draw(sf::RenderWindow &window)
override;
42 void update(sf::RenderWindow &window)
override;
46 void render(sf::RenderWindow &window)
override;
57 Label(std::string text, std::unordered_map<std::string, std::variant<unsigned int, float, std::string>> styling = {});
69 void overrideStyling(std::unordered_map<std::string, std::variant<unsigned int, float, std::string>> styling);
Text display widget with simple style map support.
Definition Label.hpp:23
void setPosition(float x, float y) override
Set top-left position of label text/background.
void setText(const std::string txt)
Replace displayed string.
void render(sf::RenderWindow &window) override
Render the label.
void overrideStyling(std::unordered_map< std::string, std::variant< unsigned int, float, std::string > > styling)
Apply/override style properties.
sf::Vector2f getDimensions() override
Get current text bounds.
Label(std::string text, std::unordered_map< std::string, std::variant< unsigned int, float, std::string > > styling={})
Create label with text and optional style overrides.