TGUI  0.8.9

This class can be used to manage the widget renderers. More...

#include <TGUI/Loading/Theme.hpp>

Public Member Functions

 Theme (const std::string &primary="")
 Constructs the theme class, with an optional theme file to load. More...
 
 ~Theme ()
 Destructor. More...
 
void load (const std::string &primary)
 Changes the primary theme loader parameter. More...
 
std::shared_ptr< RendererDatagetRenderer (const std::string &id)
 Gets data for the renderers. More...
 
std::shared_ptr< RendererDatagetRendererNoThrow (const std::string &id)
 Gets data for the renderers. More...
 
void addRenderer (const std::string &id, std::shared_ptr< RendererData > renderer)
 Manually adds a renderer data to the theme. More...
 
bool removeRenderer (const std::string &id)
 Manually removes a renderer to the theme. More...
 
const std::string & getPrimary () const
 Returns the primary theme loader parameter. More...
 

Static Public Member Functions

static void setThemeLoader (std::shared_ptr< BaseThemeLoader > themeLoader)
 Changes the function that will load the widget theme data. More...
 
static std::shared_ptr< BaseThemeLoadergetThemeLoader ()
 Returns the function that is currently being used to load the widget theme data. More...
 
static void setDefault (Theme *theme)
 Sets the theme class that widgets use by default. More...
 
static ThemegetDefault ()
 Returns a pointer to the theme class that widgets use by default. More...
 

Protected Attributes

std::map< std::string, std::shared_ptr< RendererData > > m_renderers
 Maps ids to renderer datas.
 

Static Protected Attributes

static std::shared_ptr< BaseThemeLoaderm_themeLoader
 Theme loader which will do the actual loading.
 

Detailed Description

This class can be used to manage the widget renderers.

Constructor & Destructor Documentation

◆ Theme()

tgui::Theme::Theme ( const std::string &  primary = "")

Constructs the theme class, with an optional theme file to load.

Parameters
primaryPrimary parameter for the theme loader (filename of the theme file in DefaultThemeLoader)

◆ ~Theme()

tgui::Theme::~Theme ( )

Destructor.

When a pointer to this theme was passed to setDefault, the default theme will be reset.

Member Function Documentation

◆ addRenderer()

void tgui::Theme::addRenderer ( const std::string &  id,
std::shared_ptr< RendererData renderer 
)

Manually adds a renderer data to the theme.

Parameters
idIdentifier of the renderer
rendererThe renderer to add

If a renderer with the same id already exists then it will be replaced by this one. Widgets using the old renderer will keep using that old renderer and remain unchanged.

◆ getDefault()

static Theme * tgui::Theme::getDefault ( )
static

Returns a pointer to the theme class that widgets use by default.

Returns
Default theme
Warning
When setDefault was not called or was given a nullptr as parameter, getDefault will return the default theme. If you set textures in this theme then you MUST call setDefault(nullptr) before the end of the program to prevent a potential crash due to undefined order of destruction.

◆ getPrimary()

const std::string & tgui::Theme::getPrimary ( ) const

Returns the primary theme loader parameter.

Returns
Primary parameter for the theme loader (filename of the theme file in DefaultThemeLoader)

◆ getRenderer()

std::shared_ptr< RendererData > tgui::Theme::getRenderer ( const std::string &  id)

Gets data for the renderers.

Parameters
idThe secondary parameter for the theme loader (name of section in theme file in DefaultThemeLoader).
Returns
Shared renderer data
Exceptions
Exceptionif theme loader fails to load the requested renderer

◆ getRendererNoThrow()

std::shared_ptr< RendererData > tgui::Theme::getRendererNoThrow ( const std::string &  id)

Gets data for the renderers.

Parameters
idThe secondary parameter for the theme loader (name of section in theme file in DefaultThemeLoader).
Returns
Shared renderer data

Unlike getRenderer which throws an exception, this function will return nullptr when the renderer is not found

◆ getThemeLoader()

static std::shared_ptr< BaseThemeLoader > tgui::Theme::getThemeLoader ( )
static

Returns the function that is currently being used to load the widget theme data.

Returns
Theme loader

◆ load()

void tgui::Theme::load ( const std::string &  primary)

Changes the primary theme loader parameter.

Parameters
primaryPrimary parameter for the theme loader (filename of the theme file in DefaultThemeLoader)

When the theme was loaded before and a renderer with the same name is encountered, the widgets that were using the old renderer will be reloaded with the new renderer.

◆ removeRenderer()

bool tgui::Theme::removeRenderer ( const std::string &  id)

Manually removes a renderer to the theme.

Parameters
idIdentifier of the renderer
Returns
True when removed, false when the identifier did not match any renderer

◆ setDefault()

static void tgui::Theme::setDefault ( Theme theme)
static

Sets the theme class that widgets use by default.

Parameters
themeTheme to use as default

The default theme will automatically be reset to nullptr when the theme that is pointed to is destructed.

◆ setThemeLoader()

static void tgui::Theme::setThemeLoader ( std::shared_ptr< BaseThemeLoader themeLoader)
static

Changes the function that will load the widget theme data.

Parameters
themeLoaderPointer to the new loader

The documentation for this class was generated from the following file: