<?xml version="1.0" encoding="UTF-8" ?>
<class name="Theme" inherits="Resource" version="4.2">
	<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.md</link>
	</tutorials>
	<methods>
		<method name="add_type">
			<return type="void" />
			<argument index="0" name="theme_type" type="StringName" />
			<description>
			</description>
		</method>
		<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="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<description>
			</description>
		</method>
		<method name="clear_constant">
			<return type="void" />
			<argument index="0" name="name" type="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<description>
			</description>
		</method>
		<method name="clear_font">
			<return type="void" />
			<argument index="0" name="name" type="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<description>
			</description>
		</method>
		<method name="clear_icon">
			<return type="void" />
			<argument index="0" name="name" type="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<description>
			</description>
		</method>
		<method name="clear_stylebox">
			<return type="void" />
			<argument index="0" name="name" type="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<description>
			</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="StringName" />
			<argument index="2" name="theme_type" type="StringName" />
			<description>
			</description>
		</method>
		<method name="clear_type_variation">
			<return type="void" />
			<argument index="0" name="theme_type" type="StringName" />
			<description>
			</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="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<description>
			</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]theme_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="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<description>
			</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]theme_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="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<description>
			</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]theme_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="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<description>
			</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]theme_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="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<description>
			</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]theme_type[/code].
				Valid [code]theme_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="StringName" />
			<argument index="2" name="theme_type" type="StringName" />
			<description>
			</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]theme_type[/code].
				Valid [code]theme_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]theme_type[/code] has no effect and will be removed in future version.
			</description>
		</method>
		<method name="get_type_variation_base" qualifiers="const">
			<return type="StringName" />
			<argument index="0" name="theme_type" type="StringName" />
			<description>
			</description>
		</method>
		<method name="get_type_variation_list" qualifiers="const">
			<return type="PoolStringArray" />
			<argument index="0" name="base_type" type="StringName" />
			<description>
			</description>
		</method>
		<method name="has_color" qualifiers="const">
			<return type="bool" />
			<argument index="0" name="name" type="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<description>
			</description>
		</method>
		<method name="has_constant" qualifiers="const">
			<return type="bool" />
			<argument index="0" name="name" type="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<description>
			</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="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<description>
			</description>
		</method>
		<method name="has_icon" qualifiers="const">
			<return type="bool" />
			<argument index="0" name="name" type="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<description>
			</description>
		</method>
		<method name="has_stylebox" qualifiers="const">
			<return type="bool" />
			<argument index="0" name="name" type="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<description>
			</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="StringName" />
			<argument index="2" name="theme_type" type="StringName" />
			<description>
			</description>
		</method>
		<method name="is_type_variation" qualifiers="const">
			<return type="bool" />
			<argument index="0" name="theme_type" type="StringName" />
			<argument index="1" name="base_type" type="StringName" />
			<description>
			</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="remove_type">
			<return type="void" />
			<argument index="0" name="theme_type" type="StringName" />
			<description>
			</description>
		</method>
		<method name="rename_color">
			<return type="void" />
			<argument index="0" name="old_name" type="StringName" />
			<argument index="1" name="name" type="StringName" />
			<argument index="2" name="theme_type" type="StringName" />
			<description>
			</description>
		</method>
		<method name="rename_constant">
			<return type="void" />
			<argument index="0" name="old_name" type="StringName" />
			<argument index="1" name="name" type="StringName" />
			<argument index="2" name="theme_type" type="StringName" />
			<description>
			</description>
		</method>
		<method name="rename_font">
			<return type="void" />
			<argument index="0" name="old_name" type="StringName" />
			<argument index="1" name="name" type="StringName" />
			<argument index="2" name="theme_type" type="StringName" />
			<description>
			</description>
		</method>
		<method name="rename_icon">
			<return type="void" />
			<argument index="0" name="old_name" type="StringName" />
			<argument index="1" name="name" type="StringName" />
			<argument index="2" name="theme_type" type="StringName" />
			<description>
			</description>
		</method>
		<method name="rename_stylebox">
			<return type="void" />
			<argument index="0" name="old_name" type="StringName" />
			<argument index="1" name="name" type="StringName" />
			<argument index="2" name="theme_type" type="StringName" />
			<description>
			</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="StringName" />
			<argument index="2" name="name" type="StringName" />
			<argument index="3" name="theme_type" type="StringName" />
			<description>
			</description>
		</method>
		<method name="set_color">
			<return type="void" />
			<argument index="0" name="name" type="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<argument index="2" name="color" type="Color" />
			<description>
			</description>
		</method>
		<method name="set_constant">
			<return type="void" />
			<argument index="0" name="name" type="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<argument index="2" name="constant" type="int" />
			<description>
			</description>
		</method>
		<method name="set_font">
			<return type="void" />
			<argument index="0" name="name" type="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<argument index="2" name="font" type="Font" />
			<description>
			</description>
		</method>
		<method name="set_icon">
			<return type="void" />
			<argument index="0" name="name" type="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<argument index="2" name="texture" type="Texture" />
			<description>
			</description>
		</method>
		<method name="set_stylebox">
			<return type="void" />
			<argument index="0" name="name" type="StringName" />
			<argument index="1" name="theme_type" type="StringName" />
			<argument index="2" name="texture" type="StyleBox" />
			<description>
			</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="StringName" />
			<argument index="2" name="theme_type" type="StringName" />
			<argument index="3" name="value" type="Variant" />
			<description>
			</description>
		</method>
		<method name="set_type_variation">
			<return type="void" />
			<argument index="0" name="theme_type" type="StringName" />
			<argument index="1" name="base_type" type="StringName" />
			<description>
			</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>
