virtualx-engine/doc/classes/Theme.xml
Hugo Locurcio b087538119
Add an XML schema for documentation
This makes it easier to spot syntax errors when editing the
class reference. The schema is referenced locally so validation
can still work offline.

Each class XML's schema conformance is also checked on GitHub Actions.
2022-03-16 23:01:02 +01:00

476 lines
22 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<class name="Theme" inherits="Resource" version="3.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Theme for controls.
</brief_description>
<description>
A theme for skinning controls. Controls can be skinned individually, but for complex applications, it's more practical to just create a global theme that defines everything. This theme can be applied to any [Control]; the Control and its children will automatically use it.
Theme resources can alternatively be loaded by writing them in a [code].theme[/code] file, see the documentation for more information.
</description>
<tutorials>
<link>$DOCS_URL/tutorials/ui/gui_skinning.html</link>
</tutorials>
<methods>
<method name="clear">
<return type="void" />
<description>
Clears all values on the theme.
</description>
</method>
<method name="clear_color">
<return type="void" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<description>
Clears the [Color] at [code]name[/code] if the theme has [code]node_type[/code].
</description>
</method>
<method name="clear_constant">
<return type="void" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<description>
Clears the constant at [code]name[/code] if the theme has [code]node_type[/code].
</description>
</method>
<method name="clear_font">
<return type="void" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<description>
Clears the [Font] at [code]name[/code] if the theme has [code]node_type[/code].
</description>
</method>
<method name="clear_icon">
<return type="void" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<description>
Clears the icon at [code]name[/code] if the theme has [code]node_type[/code].
</description>
</method>
<method name="clear_stylebox">
<return type="void" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<description>
Clears [StyleBox] at [code]name[/code] if the theme has [code]node_type[/code].
</description>
</method>
<method name="clear_theme_item">
<return type="void" />
<argument index="0" name="data_type" type="int" enum="Theme.DataType" />
<argument index="1" name="name" type="String" />
<argument index="2" name="theme_type" type="String" />
<description>
Clears the theme item of [code]data_type[/code] at [code]name[/code] if the theme has [code]node_type[/code].
</description>
</method>
<method name="clear_type_variation">
<return type="void" />
<argument index="0" name="theme_type" type="String" />
<description>
Unmarks [code]theme_type[/code] as being a variation of another theme type. See [method set_type_variation].
</description>
</method>
<method name="copy_default_theme">
<return type="void" />
<description>
Sets the theme's values to a copy of the default theme values.
</description>
</method>
<method name="copy_theme">
<return type="void" />
<argument index="0" name="other" type="Theme" />
<description>
Sets the theme's values to a copy of a given theme.
</description>
</method>
<method name="get_color" qualifiers="const">
<return type="Color" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<description>
Returns the [Color] at [code]name[/code] if the theme has [code]node_type[/code].
</description>
</method>
<method name="get_color_list" qualifiers="const">
<return type="PoolStringArray" />
<argument index="0" name="theme_type" type="String" />
<description>
Returns all the [Color]s as a [PoolStringArray] filled with each [Color]'s name, for use in [method get_color], if the theme has [code]node_type[/code].
</description>
</method>
<method name="get_color_types" qualifiers="const">
<return type="PoolStringArray" />
<description>
Returns all the [Color] types as a [PoolStringArray] filled with unique type names, for use in [method get_color] and/or [method get_color_list].
</description>
</method>
<method name="get_constant" qualifiers="const">
<return type="int" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<description>
Returns the constant at [code]name[/code] if the theme has [code]node_type[/code].
</description>
</method>
<method name="get_constant_list" qualifiers="const">
<return type="PoolStringArray" />
<argument index="0" name="theme_type" type="String" />
<description>
Returns all the constants as a [PoolStringArray] filled with each constant's name, for use in [method get_constant], if the theme has [code]node_type[/code].
</description>
</method>
<method name="get_constant_types" qualifiers="const">
<return type="PoolStringArray" />
<description>
Returns all the constant types as a [PoolStringArray] filled with unique type names, for use in [method get_constant] and/or [method get_constant_list].
</description>
</method>
<method name="get_font" qualifiers="const">
<return type="Font" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<description>
Returns the [Font] at [code]name[/code] if the theme has [code]node_type[/code]. If such item does not exist and [member default_font] is set on the theme, the default font will be returned.
</description>
</method>
<method name="get_font_list" qualifiers="const">
<return type="PoolStringArray" />
<argument index="0" name="theme_type" type="String" />
<description>
Returns all the [Font]s as a [PoolStringArray] filled with each [Font]'s name, for use in [method get_font], if the theme has [code]node_type[/code].
</description>
</method>
<method name="get_font_types" qualifiers="const">
<return type="PoolStringArray" />
<description>
Returns all the [Font] types as a [PoolStringArray] filled with unique type names, for use in [method get_font] and/or [method get_font_list].
</description>
</method>
<method name="get_icon" qualifiers="const">
<return type="Texture" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<description>
Returns the icon [Texture] at [code]name[/code] if the theme has [code]node_type[/code].
</description>
</method>
<method name="get_icon_list" qualifiers="const">
<return type="PoolStringArray" />
<argument index="0" name="theme_type" type="String" />
<description>
Returns all the icons as a [PoolStringArray] filled with each [Texture]'s name, for use in [method get_icon], if the theme has [code]node_type[/code].
</description>
</method>
<method name="get_icon_types" qualifiers="const">
<return type="PoolStringArray" />
<description>
Returns all the icon types as a [PoolStringArray] filled with unique type names, for use in [method get_icon] and/or [method get_icon_list].
</description>
</method>
<method name="get_stylebox" qualifiers="const">
<return type="StyleBox" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<description>
Returns the [StyleBox] at [code]name[/code] if the theme has [code]node_type[/code].
Valid [code]name[/code]s may be found using [method get_stylebox_list]. Valid [code]node_type[/code]s may be found using [method get_stylebox_types].
</description>
</method>
<method name="get_stylebox_list" qualifiers="const">
<return type="PoolStringArray" />
<argument index="0" name="theme_type" type="String" />
<description>
Returns all the [StyleBox]s as a [PoolStringArray] filled with each [StyleBox]'s name, for use in [method get_stylebox], if the theme has [code]node_type[/code].
Valid [code]node_type[/code]s may be found using [method get_stylebox_types].
</description>
</method>
<method name="get_stylebox_types" qualifiers="const">
<return type="PoolStringArray" />
<description>
Returns all the [StyleBox] types as a [PoolStringArray] filled with unique type names, for use in [method get_stylebox] and/or [method get_stylebox_list].
</description>
</method>
<method name="get_theme_item" qualifiers="const">
<return type="Variant" />
<argument index="0" name="data_type" type="int" enum="Theme.DataType" />
<argument index="1" name="name" type="String" />
<argument index="2" name="theme_type" type="String" />
<description>
Returns the theme item of [code]data_type[/code] at [code]name[/code] if the theme has [code]node_type[/code].
Valid [code]name[/code]s may be found using [method get_theme_item_list] or a data type specific method. Valid [code]node_type[/code]s may be found using [method get_theme_item_types] or a data type specific method.
</description>
</method>
<method name="get_theme_item_list" qualifiers="const">
<return type="PoolStringArray" />
<argument index="0" name="data_type" type="int" enum="Theme.DataType" />
<argument index="1" name="theme_type" type="String" />
<description>
Returns all the theme items of [code]data_type[/code] as a [PoolStringArray] filled with each theme items's name, for use in [method get_theme_item] or a data type specific method, if the theme has [code]node_type[/code].
Valid [code]node_type[/code]s may be found using [method get_theme_item_types] or a data type specific method.
</description>
</method>
<method name="get_theme_item_types" qualifiers="const">
<return type="PoolStringArray" />
<argument index="0" name="data_type" type="int" enum="Theme.DataType" />
<description>
Returns all the theme items of [code]data_type[/code] types as a [PoolStringArray] filled with unique type names, for use in [method get_theme_item], [method get_theme_item_list] or data type specific methods.
</description>
</method>
<method name="get_type_list" qualifiers="const">
<return type="PoolStringArray" />
<argument index="0" name="theme_type" type="String" />
<description>
Returns all the theme types as a [PoolStringArray] filled with unique type names, for use in other [code]get_*[/code] functions of this theme.
[b]Note:[/b] [code]node_type[/code] has no effect and will be removed in future version.
</description>
</method>
<method name="get_type_variation_base" qualifiers="const">
<return type="String" />
<argument index="0" name="theme_type" type="String" />
<description>
Returns the name of the base theme type if [code]theme_type[/code] is a valid variation type. Returns an empty string otherwise.
</description>
</method>
<method name="get_type_variation_list" qualifiers="const">
<return type="PoolStringArray" />
<argument index="0" name="base_type" type="String" />
<description>
Returns a list of all type variations for the given [code]base_type[/code].
</description>
</method>
<method name="has_color" qualifiers="const">
<return type="bool" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<description>
Returns [code]true[/code] if [Color] with [code]name[/code] is in [code]node_type[/code].
Returns [code]false[/code] if the theme does not have [code]node_type[/code].
</description>
</method>
<method name="has_constant" qualifiers="const">
<return type="bool" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<description>
Returns [code]true[/code] if constant with [code]name[/code] is in [code]node_type[/code].
Returns [code]false[/code] if the theme does not have [code]node_type[/code].
</description>
</method>
<method name="has_default_font" qualifiers="const">
<return type="bool" />
<description>
Returns [code]true[/code] if this theme has a valid [member default_font] value.
</description>
</method>
<method name="has_font" qualifiers="const">
<return type="bool" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<description>
Returns [code]true[/code] if [Font] with [code]name[/code] is in [code]node_type[/code].
Returns [code]false[/code] if the theme does not have [code]node_type[/code].
</description>
</method>
<method name="has_icon" qualifiers="const">
<return type="bool" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<description>
Returns [code]true[/code] if icon [Texture] with [code]name[/code] is in [code]node_type[/code].
Returns [code]false[/code] if the theme does not have [code]node_type[/code].
</description>
</method>
<method name="has_stylebox" qualifiers="const">
<return type="bool" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<description>
Returns [code]true[/code] if [StyleBox] with [code]name[/code] is in [code]node_type[/code].
Returns [code]false[/code] if the theme does not have [code]node_type[/code].
</description>
</method>
<method name="has_theme_item" qualifiers="const">
<return type="bool" />
<argument index="0" name="data_type" type="int" enum="Theme.DataType" />
<argument index="1" name="name" type="String" />
<argument index="2" name="theme_type" type="String" />
<description>
Returns [code]true[/code] if a theme item of [code]data_type[/code] with [code]name[/code] is in [code]node_type[/code].
Returns [code]false[/code] if the theme does not have [code]node_type[/code].
</description>
</method>
<method name="is_type_variation" qualifiers="const">
<return type="bool" />
<argument index="0" name="theme_type" type="String" />
<argument index="1" name="base_type" type="String" />
<description>
Returns [code]true[/code] if [code]theme_type[/code] is marked as a variation of [code]base_type[/code].
</description>
</method>
<method name="merge_with">
<return type="void" />
<argument index="0" name="other" type="Theme" />
<description>
Adds missing and overrides existing definitions with values from the [code]other[/code] [Theme].
[b]Note:[/b] This modifies the current theme. If you want to merge two themes together without modifying either one, create a new empty theme and merge the other two into it one after another.
</description>
</method>
<method name="rename_color">
<return type="void" />
<argument index="0" name="old_name" type="String" />
<argument index="1" name="name" type="String" />
<argument index="2" name="theme_type" type="String" />
<description>
Renames the [Color] at [code]old_name[/code] to [code]name[/code] if the theme has [code]node_type[/code]. If [code]name[/code] is already taken, this method fails.
</description>
</method>
<method name="rename_constant">
<return type="void" />
<argument index="0" name="old_name" type="String" />
<argument index="1" name="name" type="String" />
<argument index="2" name="theme_type" type="String" />
<description>
Renames the constant at [code]old_name[/code] to [code]name[/code] if the theme has [code]node_type[/code]. If [code]name[/code] is already taken, this method fails.
</description>
</method>
<method name="rename_font">
<return type="void" />
<argument index="0" name="old_name" type="String" />
<argument index="1" name="name" type="String" />
<argument index="2" name="theme_type" type="String" />
<description>
Renames the [Font] at [code]old_name[/code] to [code]name[/code] if the theme has [code]node_type[/code]. If [code]name[/code] is already taken, this method fails.
</description>
</method>
<method name="rename_icon">
<return type="void" />
<argument index="0" name="old_name" type="String" />
<argument index="1" name="name" type="String" />
<argument index="2" name="theme_type" type="String" />
<description>
Renames the icon at [code]old_name[/code] to [code]name[/code] if the theme has [code]node_type[/code]. If [code]name[/code] is already taken, this method fails.
</description>
</method>
<method name="rename_stylebox">
<return type="void" />
<argument index="0" name="old_name" type="String" />
<argument index="1" name="name" type="String" />
<argument index="2" name="theme_type" type="String" />
<description>
Renames [StyleBox] at [code]old_name[/code] to [code]name[/code] if the theme has [code]node_type[/code]. If [code]name[/code] is already taken, this method fails.
</description>
</method>
<method name="rename_theme_item">
<return type="void" />
<argument index="0" name="data_type" type="int" enum="Theme.DataType" />
<argument index="1" name="old_name" type="String" />
<argument index="2" name="name" type="String" />
<argument index="3" name="theme_type" type="String" />
<description>
Renames the theme item of [code]data_type[/code] at [code]old_name[/code] to [code]name[/code] if the theme has [code]node_type[/code]. If [code]name[/code] is already taken, this method fails.
</description>
</method>
<method name="set_color">
<return type="void" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<argument index="2" name="color" type="Color" />
<description>
Sets the theme's [Color] to [code]color[/code] at [code]name[/code] in [code]node_type[/code].
Creates [code]node_type[/code] if the theme does not have it.
</description>
</method>
<method name="set_constant">
<return type="void" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<argument index="2" name="constant" type="int" />
<description>
Sets the theme's constant to [code]constant[/code] at [code]name[/code] in [code]node_type[/code].
Creates [code]node_type[/code] if the theme does not have it.
</description>
</method>
<method name="set_font">
<return type="void" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<argument index="2" name="font" type="Font" />
<description>
Sets the theme's [Font] to [code]font[/code] at [code]name[/code] in [code]node_type[/code].
Creates [code]node_type[/code] if the theme does not have it.
</description>
</method>
<method name="set_icon">
<return type="void" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<argument index="2" name="texture" type="Texture" />
<description>
Sets the theme's icon [Texture] to [code]texture[/code] at [code]name[/code] in [code]node_type[/code].
Creates [code]node_type[/code] if the theme does not have it.
</description>
</method>
<method name="set_stylebox">
<return type="void" />
<argument index="0" name="name" type="String" />
<argument index="1" name="theme_type" type="String" />
<argument index="2" name="texture" type="StyleBox" />
<description>
Sets theme's [StyleBox] to [code]stylebox[/code] at [code]name[/code] in [code]node_type[/code].
Creates [code]node_type[/code] if the theme does not have it.
</description>
</method>
<method name="set_theme_item">
<return type="void" />
<argument index="0" name="data_type" type="int" enum="Theme.DataType" />
<argument index="1" name="name" type="String" />
<argument index="2" name="theme_type" type="String" />
<argument index="3" name="value" type="Variant" />
<description>
Sets the theme item of [code]data_type[/code] to [code]value[/code] at [code]name[/code] in [code]node_type[/code].
Does nothing if the [code]value[/code] type does not match [code]data_type[/code].
Creates [code]node_type[/code] if the theme does not have it.
</description>
</method>
<method name="set_type_variation">
<return type="void" />
<argument index="0" name="theme_type" type="String" />
<argument index="1" name="base_type" type="String" />
<description>
Marks [code]theme_type[/code] as a variation of [code]base_type[/code].
This adds [code]theme_type[/code] as a suggested option for [member Control.theme_type_variation] on a [Control] that is of the [code]base_type[/code] class.
Variations can also be nested, i.e. [code]base_type[/code] can be another variation. If a chain of variations ends with a [code]base_type[/code] matching the class of the [Control], the whole chain is going to be suggested as options.
[b]Note:[/b] Suggestions only show up if this theme resource is set as the project default theme. See [member ProjectSettings.gui/theme/custom].
</description>
</method>
</methods>
<members>
<member name="default_font" type="Font" setter="set_default_font" getter="get_default_font">
The default font of this [Theme] resource. Used as a fallback value for font items defined in this theme, but having invalid values. If this value is also invalid, the global default value is used.
Use [method has_default_font] to check if this value is valid.
</member>
</members>
<constants>
<constant name="DATA_TYPE_COLOR" value="0" enum="DataType">
Theme's [Color] item type.
</constant>
<constant name="DATA_TYPE_CONSTANT" value="1" enum="DataType">
Theme's constant item type.
</constant>
<constant name="DATA_TYPE_FONT" value="2" enum="DataType">
Theme's [Font] item type.
</constant>
<constant name="DATA_TYPE_ICON" value="3" enum="DataType">
Theme's icon [Texture] item type.
</constant>
<constant name="DATA_TYPE_STYLEBOX" value="4" enum="DataType">
Theme's [StyleBox] item type.
</constant>
<constant name="DATA_TYPE_MAX" value="5" enum="DataType">
Maximum value for the DataType enum.
</constant>
</constants>
</class>