<?xml version="1.0" encoding="UTF-8" ?>
<class name="Tabs" inherits="Control" version="4.2">
	<brief_description>
		Tabs control.
	</brief_description>
	<description>
		Simple tabs control, similar to [TabContainer] but is only in charge of drawing tabs, not interacting with children.
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="add_tab">
			<return type="void" />
			<argument index="0" name="title" type="String" default="&quot;&quot;" />
			<argument index="1" name="icon" type="Texture" default="null" />
			<description>
				Adds a new tab.
			</description>
		</method>
		<method name="ensure_tab_visible">
			<return type="void" />
			<argument index="0" name="idx" type="int" />
			<description>
				Moves the scroll view to make the tab visible.
			</description>
		</method>
		<method name="get_offset_buttons_visible" qualifiers="const">
			<return type="bool" />
			<description>
				Returns [code]true[/code] if the offset buttons (the ones that appear when there's not enough space for all tabs) are visible.
			</description>
		</method>
		<method name="get_previous_tab" qualifiers="const">
			<return type="int" />
			<description>
				Returns the previously active tab index.
			</description>
		</method>
		<method name="get_select_with_rmb" qualifiers="const">
			<return type="bool" />
			<description>
				Returns [code]true[/code] if select with right mouse button is enabled.
			</description>
		</method>
		<method name="get_tab_button_icon" qualifiers="const">
			<return type="Texture" />
			<argument index="0" name="tab_idx" type="int" />
			<description>
				Returns the button icon from the tab at index [code]tab_idx[/code].
			</description>
		</method>
		<method name="get_tab_count" qualifiers="const">
			<return type="int" />
			<description>
				Returns the number of tabs.
			</description>
		</method>
		<method name="get_tab_disabled" qualifiers="const">
			<return type="bool" />
			<argument index="0" name="tab_idx" type="int" />
			<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" />
			<argument index="0" name="tab_idx" type="int" />
			<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_metadata" qualifiers="const">
			<return type="Variant" />
			<argument index="0" name="tab_idx" type="int" />
			<description>
				Returns the metadata value set to the tab at index [code]tab_idx[/code]. If no metadata was previously set, returns [code]null[/code] by default.
			</description>
		</method>
		<method name="get_tab_offset" qualifiers="const">
			<return type="int" />
			<description>
				Returns the number of hidden tabs offsetted to the left.
			</description>
		</method>
		<method name="get_tab_rect" qualifiers="const">
			<return type="Rect2" />
			<argument index="0" name="tab_idx" type="int" />
			<description>
				Returns tab [Rect2] with local position and size.
			</description>
		</method>
		<method name="get_tab_title" qualifiers="const">
			<return type="String" />
			<argument index="0" name="tab_idx" type="int" />
			<description>
				Returns the title of the tab at index [code]tab_idx[/code].
			</description>
		</method>
		<method name="get_tabs_rearrange_group" qualifiers="const">
			<return type="int" />
			<description>
				Returns the [Tabs]' rearrange group ID.
			</description>
		</method>
		<method name="move_tab">
			<return type="void" />
			<argument index="0" name="from" type="int" />
			<argument index="1" name="to" type="int" />
			<description>
				Moves a tab from [code]from[/code] to [code]to[/code].
			</description>
		</method>
		<method name="remove_tab">
			<return type="void" />
			<argument index="0" name="tab_idx" type="int" />
			<description>
				Removes the tab at index [code]tab_idx[/code].
			</description>
		</method>
		<method name="set_select_with_rmb">
			<return type="void" />
			<argument index="0" name="enabled" type="bool" />
			<description>
				If [code]true[/code], enables selecting a tab with the right mouse button.
			</description>
		</method>
		<method name="set_tab_button_icon">
			<return type="void" />
			<argument index="0" name="tab_idx" type="int" />
			<argument index="1" name="icon" type="Texture" />
			<description>
				Sets the button icon from the tab at index [code]tab_idx[/code].
			</description>
		</method>
		<method name="set_tab_disabled">
			<return type="void" />
			<argument index="0" name="tab_idx" type="int" />
			<argument index="1" name="disabled" type="bool" />
			<description>
				If [code]disabled[/code] is [code]true[/code], disables the tab at index [code]tab_idx[/code], making it non-interactable.
			</description>
		</method>
		<method name="set_tab_icon">
			<return type="void" />
			<argument index="0" name="tab_idx" type="int" />
			<argument index="1" name="icon" type="Texture" />
			<description>
				Sets an [code]icon[/code] for the tab at index [code]tab_idx[/code].
			</description>
		</method>
		<method name="set_tab_metadata">
			<return type="void" />
			<argument index="0" name="tab_idx" type="int" />
			<argument index="1" name="metadata" type="Variant" />
			<description>
				Sets the metadata value for the tab at index [code]tab_idx[/code].
			</description>
		</method>
		<method name="set_tab_title">
			<return type="void" />
			<argument index="0" name="tab_idx" type="int" />
			<argument index="1" name="title" type="String" />
			<description>
				Sets a [code]title[/code] for the tab at index [code]tab_idx[/code].
			</description>
		</method>
		<method name="set_tabs_rearrange_group">
			<return type="void" />
			<argument index="0" name="group_id" type="int" />
			<description>
				Defines the rearrange group ID. Choose for each [Tabs] the same value to dragging tabs between [Tabs]. Enable drag with [member drag_to_rearrange_enabled].
			</description>
		</method>
	</methods>
	<members>
		<member name="current_tab" type="int" setter="set_current_tab" getter="get_current_tab" default="0">
			Select tab at index [code]tab_idx[/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="scrolling_enabled" type="bool" setter="set_scrolling_enabled" getter="get_scrolling_enabled" default="true">
			if [code]true[/code], the mouse's scroll wheel can be used to navigate the scroll view.
		</member>
		<member name="tab_align" type="int" setter="set_tab_align" getter="get_tab_align" enum="Tabs.TabAlign" default="1">
			The alignment of all tabs. See [enum TabAlign] for details.
		</member>
		<member name="tab_close_display_policy" type="int" setter="set_tab_close_display_policy" getter="get_tab_close_display_policy" enum="Tabs.CloseButtonDisplayPolicy" default="0">
			Sets when the close button will appear on the tabs. See [enum CloseButtonDisplayPolicy] for details.
		</member>
	</members>
	<signals>
		<signal name="reposition_active_tab_request">
			<argument index="0" name="idx_to" type="int" />
			<description>
				Emitted when the active tab is rearranged via mouse drag. See [member drag_to_rearrange_enabled].
			</description>
		</signal>
		<signal name="right_button_pressed">
			<argument index="0" name="tab" type="int" />
			<description>
				Emitted when a tab's right button is pressed. See [method set_tab_button_icon].
			</description>
		</signal>
		<signal name="tab_changed">
			<argument index="0" name="tab" type="int" />
			<description>
				Emitted when switching to another tab.
			</description>
		</signal>
		<signal name="tab_clicked">
			<argument index="0" name="tab" type="int" />
			<description>
				Emitted when a tab is clicked, even if it is the current tab.
			</description>
		</signal>
		<signal name="tab_close">
			<argument index="0" name="tab" type="int" />
			<description>
				Emitted when a tab is closed.
			</description>
		</signal>
		<signal name="tab_hover">
			<argument index="0" name="tab" type="int" />
			<description>
				Emitted when a tab is hovered by the mouse.
			</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>
		<constant name="ALIGN_MAX" value="3" enum="TabAlign">
			Represents the size of the [enum TabAlign] enum.
		</constant>
		<constant name="CLOSE_BUTTON_SHOW_NEVER" value="0" enum="CloseButtonDisplayPolicy">
			Never show the close buttons.
		</constant>
		<constant name="CLOSE_BUTTON_SHOW_ACTIVE_ONLY" value="1" enum="CloseButtonDisplayPolicy">
			Only show the close button on the currently active tab.
		</constant>
		<constant name="CLOSE_BUTTON_SHOW_ALWAYS" value="2" enum="CloseButtonDisplayPolicy">
			Show the close button on all tabs.
		</constant>
		<constant name="CLOSE_BUTTON_MAX" value="3" enum="CloseButtonDisplayPolicy">
			Represents the size of the [enum CloseButtonDisplayPolicy] enum.
		</constant>
	</constants>
	<theme_items>
		<theme_item name="font_color_bg" data_type="color" type="Color" default="Color( 0.69, 0.69, 0.69, 1 )">
			Font color of inactive tabs.
		</theme_item>
		<theme_item name="font_color_disabled" data_type="color" type="Color" default="Color( 0.9, 0.9, 0.9, 0.2 )">
			Font color of disabled tabs.
		</theme_item>
		<theme_item name="font_color_fg" data_type="color" type="Color" default="Color( 0.94, 0.94, 0.94, 1 )">
			Font color of the currently selected tab.
		</theme_item>
		<theme_item name="hseparation" data_type="constant" type="int" default="4">
			The horizontal separation between the tabs.
		</theme_item>
		<theme_item name="label_valign_bg" data_type="constant" type="int" default="2">
		</theme_item>
		<theme_item name="label_valign_fg" data_type="constant" type="int" default="0">
		</theme_item>
		<theme_item name="top_margin" data_type="constant" type="int" default="24">
		</theme_item>
		<theme_item name="font" data_type="font" type="Font">
			The font used to draw tab names.
		</theme_item>
		<theme_item name="close" data_type="icon" type="Texture">
			The icon for the close button (see [member tab_close_display_policy]).
		</theme_item>
		<theme_item name="decrement" data_type="icon" type="Texture">
			Icon for the left arrow button that appears when there are too many tabs to fit in the container width. When the button is disabled (i.e. the first tab is visible), it appears semi-transparent.
		</theme_item>
		<theme_item name="decrement_highlight" data_type="icon" type="Texture">
			Icon for the left arrow button that appears when there are too many tabs to fit in the container width. Used when the button is being hovered with the cursor.
		</theme_item>
		<theme_item name="increment" data_type="icon" type="Texture">
			Icon for the right arrow button that appears when there are too many tabs to fit in the container width. When the button is disabled (i.e. the last tab is visible) it appears semi-transparent.
		</theme_item>
		<theme_item name="increment_highlight" data_type="icon" type="Texture">
			Icon for the right arrow button that appears when there are too many tabs to fit in the container width. Used when the button is being hovered with the cursor.
		</theme_item>
		<theme_item name="button" data_type="style" type="StyleBox">
			Background of the close button when it's being hovered with the cursor.
		</theme_item>
		<theme_item name="button_pressed" data_type="style" type="StyleBox">
			Background of the close button when it's being pressed.
		</theme_item>
		<theme_item name="tab_bg" data_type="style" type="StyleBox">
			The style of an inactive tab.
		</theme_item>
		<theme_item name="tab_disabled" data_type="style" type="StyleBox">
			The style of a disabled tab
		</theme_item>
		<theme_item name="tab_fg" data_type="style" type="StyleBox">
			The style of the currently selected tab.
		</theme_item>
	</theme_items>
</class>
