TGUI  0.10-beta

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

#include <TGUI/Loading/Theme.hpp>

Public Types

typedef std::shared_ptr< ThemePtr
 Shared widget pointer.
 
typedef std::shared_ptr< const ThemeConstPtr
 Shared constant widget pointer.
 

Public Member Functions

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

Static Public Member Functions

static Theme::Ptr create (const String &primary="")
 Constructs a new theme, with an optional theme file to load. More...
 
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 (const String &primary="")
 Sets the theme class that widgets use by default. More...
 
static void setDefault (std::shared_ptr< Theme > theme)
 Sets the theme class that widgets use by default. More...
 
static void setDefault (std::nullptr_t)
 Resets the theme that widgets use by default.
 
static std::shared_ptr< ThemegetDefault ()
 Returns a pointer to the theme class that widgets use by default. More...
 

Protected Attributes

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

Static Protected Attributes

static std::shared_ptr< Themem_defaultTheme
 
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 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)

Member Function Documentation

◆ addRenderer()

void tgui::Theme::addRenderer ( const 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.

◆ create()

static Theme::Ptr tgui::Theme::create ( const String primary = "")
static

Constructs a new theme, with an optional theme file to load.

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

Unlike with widgets, it is not required to use a smart pointer for the theme. You do not have to use this function to create a theme.

◆ getDefault()

static std::shared_ptr< Theme > tgui::Theme::getDefault ( )
static

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

Returns
Default theme

When setDefault was not called or was given a nullptr as parameter, getDefault will create and return the default "White" theme.

◆ getPrimary()

const 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 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 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 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 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() [1/2]

static void tgui::Theme::setDefault ( const String primary = "")
static

Sets the theme class that widgets use by default.

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

Calling this function is equivalent to the following:

static void setDefault(const String &primary="")
Sets the theme class that widgets use by default.
static Theme::Ptr create(const String &primary="")
Constructs a new theme, with an optional theme file to load.

◆ setDefault() [2/2]

static void tgui::Theme::setDefault ( std::shared_ptr< Theme theme)
static

Sets the theme class that widgets use by default.

Parameters
themeTheme to use as default

◆ 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: