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 |
( |
| ) |
|
|
staticnodiscard |
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 |
|
nodiscard |
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 | ) |
|
|
staticnodiscard |
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 | ) |
|
|
staticnodiscard |
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 | ) |
|
|
staticnodiscard |
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
◆ replace()
void tgui::Theme::replace |
( |
const Theme & | otherTheme | ) |
|
Replaced this theme with another one, while updating all connected widgets to the new renderers.
- Parameters
-
otherTheme | The theme to copy |
The renderers are copied, meaning that all widgets connected to the other theme will remain connected to it. Any widgets connected to this theme will however be updated with new renderers when the same name is encountered.
- Since
- TGUI 1.2
◆ 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: