This class can be used to manage the widget renderers.
More...
#include <TGUI/Loading/Theme.hpp>
|
using | Ptr = std::shared_ptr< Theme > |
| Shared widget pointer.
|
|
using | ConstPtr = std::shared_ptr< const Theme > |
| Shared constant widget pointer.
|
|
|
static std::map< String, String > | m_rendererInheritanceParents |
|
static std::map< String, std::map< String, String > > | m_rendererDefaultSubwidgets |
|
static std::map< String, std::map< String, String > > | m_rendererInheritedGlobalProperties |
|
static std::shared_ptr< Theme > | m_defaultTheme |
|
static std::shared_ptr< BaseThemeLoader > | m_themeLoader |
| Theme loader which will do the actual loading.
|
|
This class can be used to manage the widget renderers.
◆ Theme()
tgui::Theme::Theme |
( |
const String & |
primary = "" | ) |
|
Constructs the theme class, with an optional theme file to load.
- Parameters
-
primary | Primary parameter for the theme loader (filename of the theme file in DefaultThemeLoader) |
◆ addRenderer()
void tgui::Theme::addRenderer |
( |
const String & |
id, |
|
|
std::shared_ptr< RendererData > |
renderer |
|
) |
| |
Manually adds a renderer data to the theme.
- Parameters
-
id | Identifier of the renderer |
renderer | The 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.
◆ addRendererDefaultSubwidget()
static void tgui::Theme::addRendererDefaultSubwidget |
( |
const String & |
widgetType, |
|
|
const String & |
property, |
|
|
const String & |
propertyWidgetType |
|
) |
| |
|
static |
Inform the theme that a custom renderer has subwidgets that need a default value.
- Parameters
-
widgetType | Type name of the custom widget |
property | Property of the renderer which should refer to another section in the renderer |
propertyWidgetType | Type name of subwidget, which specifies the section in the theme file to refer to |
◆ addRendererInheritanceParent()
static void tgui::Theme::addRendererInheritanceParent |
( |
const String & |
widgetType, |
|
|
const String & |
parentType |
|
) |
| |
|
static |
Inform the theme that a custom renderer class inherits its properties from an existing renderer.
- Parameters
-
widgetType | Type name of the custom widget |
parentType | Type name of the base widget |
◆ addRendererInheritedGlobalProperty()
static void tgui::Theme::addRendererInheritedGlobalProperty |
( |
const String & |
widgetType, |
|
|
const String & |
property, |
|
|
const String & |
globalProperty |
|
) |
| |
|
static |
Inform the theme that a custom renderer has properties that can use a default value from the global properties.
- Parameters
-
widgetType | Type name of the custom widget |
property | Property of the renderer which refers to the global property |
globalProperty | Global property in the theme that would be copied as default value for the renderer property |
◆ create()
Constructs a new theme, with an optional theme file to load.
- Parameters
-
primary | Primary 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.
◆ getGlobalProperty()
Returns the value of a global property in the theme.
- Parameters
-
property | Name of the global property to retrieve |
- Returns
- Value of the global property, or an object with type ObjectConverter::Type::None if no such propery exists
◆ 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()
Gets data for the renderers.
- Parameters
-
id | The secondary parameter for the theme loader (name of section in theme file in DefaultThemeLoader). |
- Returns
- Shared renderer data
- Exceptions
-
Exception | if theme loader fails to load the requested renderer |
◆ getRendererDefaultSubwidgets()
static std::map< String, String > tgui::Theme::getRendererDefaultSubwidgets |
( |
const String & |
widgetType | ) |
|
|
static |
Returns the defaulted subwidgets that a renderer has.
- Parameters
-
widgetType | Type name of the widget of which we are looking up the properties |
- Returns
- Map containing property names as keys the corresponding renderer sections as values
- See also
- addRendererDefaultSubwidget
◆ getRendererInheritanceParent()
static String tgui::Theme::getRendererInheritanceParent |
( |
const String & |
widgetType | ) |
|
|
static |
Returns the parent type of a widget.
- Parameters
-
widgetType | Type name of the derived widget |
- Returns
- Type name of the base widget, or an empty string if the widget has no known parent.
- See also
- addRendererInheritanceParent
◆ getRendererInheritedGlobalProperties()
static std::map< String, String > tgui::Theme::getRendererInheritedGlobalProperties |
( |
const String & |
widgetType | ) |
|
|
static |
Returns the properties which a renderer inherits from the global theme properties.
- Parameters
-
widgetType | Type name of the widget of which we are looking up the properties |
- Returns
- Map containing renderer property names as keys the corresponding global property names as values
- See also
- addRendererInheritedGlobalProperty
◆ getRendererNoThrow()
Gets data for the renderers.
- Parameters
-
id | The 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()
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
-
primary | Primary 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
-
id | Identifier 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
-
primary | Primary 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
-
theme | Theme 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
-
themeLoader | Pointer to the new loader |
The documentation for this class was generated from the following file: