class EE::UI::UITheme

#include <uitheme.hpp>

class UITheme {
public:
    // construction

    virtual ~UITheme();

    // methods

    static UIThemePtr New(const std::string& name, const std::string& abbr, Graphics::Font* defaultFont = NULL);
    static UIThemePtr load(const std::string& name, const std::string& abbr, const std::string& textureAtlasPath, Graphics::Font* defaultFont, const std::string& styleSheetPath);
    static UIThemePtr loadFromString(const std::string& name, const std::string& abbr, const std::string& textureAtlasPath, Graphics::Font* defaultFont, const std::string& styleSheetString);
    static UIThemePtr loadFromTextureAtlas(UIThemePtr theme, Graphics::TextureAtlasPtr textureAtlas);
    static UIThemePtr loadFromTextureAtlas(Graphics::TextureAtlasPtr textureAtlas, const std::string& Name, const std::string& NameAbbr);
    static UIThemePtr loadFromDirectory(UIThemePtr theme, const std::string& Path, const Float& pixelDensity = 1);
    static UIThemePtr loadFromDirectory(const std::string& Path, const std::string& Name, const std::string& NameAbbr, const Float& pixelDensity = 1);
    const std::string& getName() const;
    void setName(const std::string& name);
    const String::HashType& getId() const;
    const std::string& getAbbr() const;
    UISkin* add(UISkinPtr skin);
    UISkin* getById(const String::HashType& id) const;
    UISkin* getByName(const std::string& name) const;
    bool exists(const std::string& name) const;
    bool existsId(const String::HashType& id) const;
    Graphics::TextureAtlas* getTextureAtlas() const;
    UIIcon* getIconByName(const std::string& name);
    UISkin* getSkin(const std::string& widgetName);
    Font* getDefaultFont() const;
    void setDefaultFont(Font* font);
    CSS::StyleSheet& getStyleSheet();
    const CSS::StyleSheet& getStyleSheet() const;
    void setStyleSheet(CSS::StyleSheet&& styleSheet);
    void setStyleSheet(const CSS::StyleSheet& styleSheet);
    const Float& getDefaultFontSize() const;
    void setDefaultFontSize(const Float& defaultFontSize);
    UIIconTheme* getIconTheme() const;
    const Graphics::ResourceCatalogPtr& getResourceCatalog() const;
    const std::string& getStyleSheetPath() const;
    void setStyleSheetPath(const std::string& styleSheetPath);
    bool reloadStyleSheet();
};