<?xml version="1.0" encoding="UTF-8" ?>
<class name="TabContainer" inherits="Container" category="Core" version="3.2">
	<brief_description>
		Tabbed container.
	</brief_description>
	<description>
		Sets the active tab's [code]visible[/code] property to the value [code]true[/code]. Sets all other children's to [code]false[/code].
		Ignores non-[Control] children.
		Individual tabs are always visible unless you use [method set_tab_disabled] and [method set_tab_title] to hide it.
		To hide only a tab's content, nest the content inside a child [Control], so it receives the [TabContainer]'s visibility setting instead.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="get_current_tab_control" qualifiers="const">
			<return type="Control">
			</return>
			<description>
				Returns the child [Control] node located at the active tab index.
			</description>
		</method>
		<method name="get_popup" qualifiers="const">
			<return type="Popup">
			</return>
			<description>
				Returns the [Popup] node instance if one has been set already with [method set_popup].
			</description>
		</method>
		<method name="get_previous_tab" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the previously active tab index.
			</description>
		</method>
		<method name="get_tab_control" qualifiers="const">
			<return type="Control">
			</return>
			<argument index="0" name="idx" type="int">
			</argument>
			<description>
				Returns the currently visible tab's [Control] node.
			</description>
		</method>
		<method name="get_tab_count" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the number of tabs.
			</description>
		</method>
		<method name="get_tab_disabled" qualifiers="const">
			<return type="bool">
			</return>
			<argument index="0" name="tab_idx" type="int">
			</argument>
			<description>
				Returns [code]true[/code] if the tab at index [code]tab_idx[/code] is disabled.
			</description>
		</method>
		<method name="get_tab_icon" qualifiers="const">
			<return type="Texture">
			</return>
			<argument index="0" name="tab_idx" type="int">
			</argument>
			<description>
				Returns the [Texture] for the tab at index [code]tab_idx[/code] or [code]null[/code] if the tab has no [Texture].
			</description>
		</method>
		<method name="get_tab_title" qualifiers="const">
			<return type="String">
			</return>
			<argument index="0" name="tab_idx" type="int">
			</argument>
			<description>
				Returns the title of the tab at index [code]tab_idx[/code]. Tab titles default to the name of the indexed child node, but this can be overridden with [method set_tab_title].
			</description>
		</method>
		<method name="get_tabs_rearrange_group" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the [TabContainer] rearrange group id.
			</description>
		</method>
		<method name="set_popup">
			<return type="void">
			</return>
			<argument index="0" name="popup" type="Node">
			</argument>
			<description>
				If set on a [Popup] node instance, a popup menu icon appears in the top-right corner of the [TabContainer]. Clicking it will expand the [Popup] node.
			</description>
		</method>
		<method name="set_tab_disabled">
			<return type="void">
			</return>
			<argument index="0" name="tab_idx" type="int">
			</argument>
			<argument index="1" name="disabled" type="bool">
			</argument>
			<description>
				If [code]disabled[/code] is [code]false[/code], hides the tab at index [code]tab_idx[/code].
				[b]Note:[/b] Its title text will remain, unless also removed with [method set_tab_title].
			</description>
		</method>
		<method name="set_tab_icon">
			<return type="void">
			</return>
			<argument index="0" name="tab_idx" type="int">
			</argument>
			<argument index="1" name="icon" type="Texture">
			</argument>
			<description>
				Sets an icon for the tab at index [code]tab_idx[/code].
			</description>
		</method>
		<method name="set_tab_title">
			<return type="void">
			</return>
			<argument index="0" name="tab_idx" type="int">
			</argument>
			<argument index="1" name="title" type="String">
			</argument>
			<description>
				Sets a title for the tab at index [code]tab_idx[/code]. Tab titles default to the name of the indexed child node, but this can be overridden with [method set_tab_title].
			</description>
		</method>
		<method name="set_tabs_rearrange_group">
			<return type="void">
			</return>
			<argument index="0" name="group_id" type="int">
			</argument>
			<description>
				Defines rearrange group id, choose for each [TabContainer] the same value to enable tab drag between [TabContainer]. Enable drag with [code]set_drag_to_rearrange_enabled(true)[/code].
			</description>
		</method>
	</methods>
	<members>
		<member name="current_tab" type="int" setter="set_current_tab" getter="get_current_tab" default="0">
			The current tab index. When set, this index's [Control] node's [code]visible[/code] property is set to [code]true[/code] and all others are set to [code]false[/code].
		</member>
		<member name="drag_to_rearrange_enabled" type="bool" setter="set_drag_to_rearrange_enabled" getter="get_drag_to_rearrange_enabled" default="false">
			If [code]true[/code], tabs can be rearranged with mouse drag.
		</member>
		<member name="tab_align" type="int" setter="set_tab_align" getter="get_tab_align" enum="TabContainer.TabAlign" default="1">
			The alignment of all tabs in the tab container. See the [enum TabAlign] constants for details.
		</member>
		<member name="tabs_visible" type="bool" setter="set_tabs_visible" getter="are_tabs_visible" default="true">
			If [code]true[/code], tabs are visible. If [code]false[/code], tabs' content and titles are hidden.
		</member>
		<member name="use_hidden_tabs_for_min_size" type="bool" setter="set_use_hidden_tabs_for_min_size" getter="get_use_hidden_tabs_for_min_size" default="false">
			If [code]true[/code], children [Control] nodes that are hidden have their minimum size take into account in the total, instead of only the currently visible one.
		</member>
	</members>
	<signals>
		<signal name="pre_popup_pressed">
			<description>
				Emitted when the [TabContainer]'s [Popup] button is clicked. See [method set_popup] for details.
			</description>
		</signal>
		<signal name="tab_changed">
			<argument index="0" name="tab" type="int">
			</argument>
			<description>
				Emitted when switching to another tab.
			</description>
		</signal>
		<signal name="tab_selected">
			<argument index="0" name="tab" type="int">
			</argument>
			<description>
				Emitted when a tab is selected, even if it is the current tab.
			</description>
		</signal>
	</signals>
	<constants>
		<constant name="ALIGN_LEFT" value="0" enum="TabAlign">
			Align the tabs to the left.
		</constant>
		<constant name="ALIGN_CENTER" value="1" enum="TabAlign">
			Align the tabs to the center.
		</constant>
		<constant name="ALIGN_RIGHT" value="2" enum="TabAlign">
			Align the tabs to the right.
		</constant>
	</constants>
	<theme_items>
		<theme_item name="decrement" type="Texture">
		</theme_item>
		<theme_item name="decrement_highlight" type="Texture">
		</theme_item>
		<theme_item name="font" type="Font">
		</theme_item>
		<theme_item name="font_color_bg" type="Color" default="Color( 0.69, 0.69, 0.69, 1 )">
		</theme_item>
		<theme_item name="font_color_disabled" type="Color" default="Color( 0.9, 0.9, 0.9, 0.2 )">
		</theme_item>
		<theme_item name="font_color_fg" type="Color" default="Color( 0.94, 0.94, 0.94, 1 )">
		</theme_item>
		<theme_item name="hseparation" type="int" default="4">
		</theme_item>
		<theme_item name="increment" type="Texture">
		</theme_item>
		<theme_item name="increment_highlight" type="Texture">
		</theme_item>
		<theme_item name="label_valign_bg" type="int" default="2">
		</theme_item>
		<theme_item name="label_valign_fg" type="int" default="0">
		</theme_item>
		<theme_item name="menu" type="Texture">
		</theme_item>
		<theme_item name="menu_highlight" type="Texture">
		</theme_item>
		<theme_item name="panel" type="StyleBox">
		</theme_item>
		<theme_item name="side_margin" type="int" default="8">
		</theme_item>
		<theme_item name="tab_bg" type="StyleBox">
		</theme_item>
		<theme_item name="tab_disabled" type="StyleBox">
		</theme_item>
		<theme_item name="tab_fg" type="StyleBox">
		</theme_item>
		<theme_item name="top_margin" type="int" default="24">
		</theme_item>
	</theme_items>
</class>
