<?xml version="1.0" encoding="UTF-8" ?>
<class name="TreeItem" inherits="Object" version="3.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Control for a single item inside a [Tree].
	</brief_description>
	<description>
		Control for a single item inside a [Tree]. May have child [TreeItem]s and be styled as well as contain buttons.
		You can remove a [TreeItem] by using [method Object.free].
		[b]Note:[/b] The ID values used for buttons are limited to 32 bits, not full 64 bits of [int]. This has a range of [code]-2^32[/code] to [code]2^32 - 1[/code], i.e. [code]-2147483648[/code] to [code]2147483647[/code].
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="add_button">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="button" type="Texture" />
			<argument index="2" name="id" type="int" default="-1" />
			<argument index="3" name="disabled" type="bool" default="false" />
			<argument index="4" name="tooltip" type="String" default="&quot;&quot;" />
			<description>
				Adds a button with [Texture] [code]button[/code] at column [code]column[/code]. The [code]id[/code] is used to identify the button. If not specified, the next available index is used, which may be retrieved by calling [method get_button_count] immediately before this method. Optionally, the button can be [code]disabled[/code] and have a [code]tooltip[/code].
			</description>
		</method>
		<method name="call_recursive" qualifiers="vararg">
			<return type="Variant" />
			<argument index="0" name="method" type="String" />
			<description>
				Calls the [code]method[/code] on the actual TreeItem and its children recursively. Pass parameters as a comma separated list.
			</description>
		</method>
		<method name="clear_custom_bg_color">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<description>
				Resets the background color for the given column to default.
			</description>
		</method>
		<method name="clear_custom_color">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<description>
				Resets the color for the given column to default.
			</description>
		</method>
		<method name="deselect">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<description>
				Deselects the given column.
			</description>
		</method>
		<method name="erase_button">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="button_idx" type="int" />
			<description>
				Removes the button at index [code]button_idx[/code] in column [code]column[/code].
			</description>
		</method>
		<method name="get_button" qualifiers="const">
			<return type="Texture" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="button_idx" type="int" />
			<description>
				Returns the [Texture] of the button at index [code]button_idx[/code] in column [code]column[/code].
			</description>
		</method>
		<method name="get_button_by_id" qualifiers="const">
			<return type="int" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="id" type="int" />
			<description>
				Returns the button index if there is a button with id [code]id[/code] in column [code]column[/code], otherwise returns -1.
			</description>
		</method>
		<method name="get_button_count" qualifiers="const">
			<return type="int" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns the number of buttons in column [code]column[/code].
			</description>
		</method>
		<method name="get_button_id" qualifiers="const">
			<return type="int" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="button_idx" type="int" />
			<description>
				Returns the id for the button at index [code]button_idx[/code] in column [code]column[/code].
			</description>
		</method>
		<method name="get_button_tooltip" qualifiers="const">
			<return type="String" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="button_idx" type="int" />
			<description>
				Returns the tooltip string for the button at index [code]button_idx[/code] in column [code]column[/code].
			</description>
		</method>
		<method name="get_cell_mode" qualifiers="const">
			<return type="int" enum="TreeItem.TreeCellMode" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns the column's cell mode.
			</description>
		</method>
		<method name="get_children">
			<return type="TreeItem" />
			<description>
				Returns the TreeItem's first child item or a null object if there is none.
			</description>
		</method>
		<method name="get_custom_bg_color" qualifiers="const">
			<return type="Color" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns the custom background color of column [code]column[/code].
			</description>
		</method>
		<method name="get_custom_color" qualifiers="const">
			<return type="Color" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns the custom color of column [code]column[/code].
			</description>
		</method>
		<method name="get_expand_right" qualifiers="const">
			<return type="bool" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns [code]true[/code] if [code]expand_right[/code] is set.
			</description>
		</method>
		<method name="get_icon" qualifiers="const">
			<return type="Texture" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns the given column's icon [Texture]. Error if no icon is set.
			</description>
		</method>
		<method name="get_icon_max_width" qualifiers="const">
			<return type="int" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns the column's icon's maximum width.
			</description>
		</method>
		<method name="get_icon_modulate" qualifiers="const">
			<return type="Color" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns the [Color] modulating the column's icon.
			</description>
		</method>
		<method name="get_icon_region" qualifiers="const">
			<return type="Rect2" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns the icon [Texture] region as [Rect2].
			</description>
		</method>
		<method name="get_metadata" qualifiers="const">
			<return type="Variant" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns the metadata value that was set for the given column using [method set_metadata].
			</description>
		</method>
		<method name="get_next">
			<return type="TreeItem" />
			<description>
				Returns the next sibling TreeItem in the tree or a null object if there is none.
			</description>
		</method>
		<method name="get_next_visible">
			<return type="TreeItem" />
			<argument index="0" name="wrap" type="bool" default="false" />
			<description>
				Returns the next visible sibling TreeItem in the tree or a null object if there is none.
				If [code]wrap[/code] is enabled, the method will wrap around to the first visible element in the tree when called on the last visible element, otherwise it returns [code]null[/code].
			</description>
		</method>
		<method name="get_parent">
			<return type="TreeItem" />
			<description>
				Returns the parent TreeItem or a null object if there is none.
			</description>
		</method>
		<method name="get_prev">
			<return type="TreeItem" />
			<description>
				Returns the previous sibling TreeItem in the tree or a null object if there is none.
			</description>
		</method>
		<method name="get_prev_visible">
			<return type="TreeItem" />
			<argument index="0" name="wrap" type="bool" default="false" />
			<description>
				Returns the previous visible sibling TreeItem in the tree or a null object if there is none.
				If [code]wrap[/code] is enabled, the method will wrap around to the last visible element in the tree when called on the first visible element, otherwise it returns [code]null[/code].
			</description>
		</method>
		<method name="get_range" qualifiers="const">
			<return type="float" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns the value of a [constant CELL_MODE_RANGE] column.
			</description>
		</method>
		<method name="get_range_config">
			<return type="Dictionary" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns a dictionary containing the range parameters for a given column. The keys are "min", "max", "step", and "expr".
			</description>
		</method>
		<method name="get_suffix" qualifiers="const">
			<return type="String" />
			<argument index="0" name="column" type="int" />
			<description>
				Gets the suffix string shown after the column value.
			</description>
		</method>
		<method name="get_text" qualifiers="const">
			<return type="String" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns the given column's text.
			</description>
		</method>
		<method name="get_text_align" qualifiers="const">
			<return type="int" enum="TreeItem.TextAlign" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns the given column's text alignment.
			</description>
		</method>
		<method name="get_tooltip" qualifiers="const">
			<return type="String" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns the given column's tooltip.
			</description>
		</method>
		<method name="is_button_disabled" qualifiers="const">
			<return type="bool" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="button_idx" type="int" />
			<description>
				Returns [code]true[/code] if the button at index [code]button_idx[/code] for the given column is disabled.
			</description>
		</method>
		<method name="is_checked" qualifiers="const">
			<return type="bool" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns [code]true[/code] if the given column is checked.
			</description>
		</method>
		<method name="is_custom_set_as_button" qualifiers="const">
			<return type="bool" />
			<argument index="0" name="column" type="int" />
			<description>
			</description>
		</method>
		<method name="is_editable">
			<return type="bool" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns [code]true[/code] if column [code]column[/code] is editable.
			</description>
		</method>
		<method name="is_selectable" qualifiers="const">
			<return type="bool" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns [code]true[/code] if column [code]column[/code] is selectable.
			</description>
		</method>
		<method name="is_selected">
			<return type="bool" />
			<argument index="0" name="column" type="int" />
			<description>
				Returns [code]true[/code] if column [code]column[/code] is selected.
			</description>
		</method>
		<method name="move_to_bottom">
			<return type="void" />
			<description>
				Moves this TreeItem to the bottom in the [Tree] hierarchy.
			</description>
		</method>
		<method name="move_to_top">
			<return type="void" />
			<description>
				Moves this TreeItem to the top in the [Tree] hierarchy.
			</description>
		</method>
		<method name="remove_child">
			<return type="void" />
			<argument index="0" name="child" type="Object" />
			<description>
				Removes the given child [TreeItem] and all its children from the [Tree]. Note that it doesn't free the item from memory, so it can be reused later. To completely remove a [TreeItem] use [method Object.free].
			</description>
		</method>
		<method name="select">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<description>
				Selects the column [code]column[/code].
			</description>
		</method>
		<method name="set_button">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="button_idx" type="int" />
			<argument index="2" name="button" type="Texture" />
			<description>
				Sets the given column's button [Texture] at index [code]button_idx[/code] to [code]button[/code].
			</description>
		</method>
		<method name="set_button_disabled">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="button_idx" type="int" />
			<argument index="2" name="disabled" type="bool" />
			<description>
				If [code]true[/code], disables the button at index [code]button_idx[/code] in column [code]column[/code].
			</description>
		</method>
		<method name="set_cell_mode">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="mode" type="int" enum="TreeItem.TreeCellMode" />
			<description>
				Sets the given column's cell mode to [code]mode[/code]. See [enum TreeCellMode] constants.
			</description>
		</method>
		<method name="set_checked">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="checked" type="bool" />
			<description>
				If [code]true[/code], the column [code]column[/code] is checked.
			</description>
		</method>
		<method name="set_custom_as_button">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="enable" type="bool" />
			<description>
			</description>
		</method>
		<method name="set_custom_bg_color">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="color" type="Color" />
			<argument index="2" name="just_outline" type="bool" default="false" />
			<description>
				Sets the given column's custom background color and whether to just use it as an outline.
			</description>
		</method>
		<method name="set_custom_color">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="color" type="Color" />
			<description>
				Sets the given column's custom color.
			</description>
		</method>
		<method name="set_custom_draw">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="object" type="Object" />
			<argument index="2" name="callback" type="String" />
			<description>
				Sets the given column's custom draw callback to [code]callback[/code] method on [code]object[/code].
				The [code]callback[/code] should accept two arguments: the [TreeItem] that is drawn and its position and size as a [Rect2].
			</description>
		</method>
		<method name="set_editable">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="enabled" type="bool" />
			<description>
				If [code]true[/code], column [code]column[/code] is editable.
			</description>
		</method>
		<method name="set_expand_right">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="enable" type="bool" />
			<description>
				If [code]true[/code], column [code]column[/code] is expanded to the right.
			</description>
		</method>
		<method name="set_icon">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="texture" type="Texture" />
			<description>
				Sets the given column's icon [Texture].
			</description>
		</method>
		<method name="set_icon_max_width">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="width" type="int" />
			<description>
				Sets the given column's icon's maximum width.
			</description>
		</method>
		<method name="set_icon_modulate">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="modulate" type="Color" />
			<description>
				Modulates the given column's icon with [code]modulate[/code].
			</description>
		</method>
		<method name="set_icon_region">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="region" type="Rect2" />
			<description>
				Sets the given column's icon's texture region.
			</description>
		</method>
		<method name="set_metadata">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="meta" type="Variant" />
			<description>
				Sets the metadata value for the given column, which can be retrieved later using [method get_metadata]. This can be used, for example, to store a reference to the original data.
			</description>
		</method>
		<method name="set_range">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="value" type="float" />
			<description>
				Sets the value of a [constant CELL_MODE_RANGE] column.
			</description>
		</method>
		<method name="set_range_config">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="min" type="float" />
			<argument index="2" name="max" type="float" />
			<argument index="3" name="step" type="float" />
			<argument index="4" name="expr" type="bool" default="false" />
			<description>
				Sets the range of accepted values for a column. The column must be in the [constant CELL_MODE_RANGE] mode.
				If [code]expr[/code] is [code]true[/code], the edit mode slider will use an exponential scale as with [member Range.exp_edit].
			</description>
		</method>
		<method name="set_selectable">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="selectable" type="bool" />
			<description>
				If [code]true[/code], the given column is selectable.
			</description>
		</method>
		<method name="set_suffix">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="text" type="String" />
			<description>
				Sets a string to be shown after a column's value (for example, a unit abbreviation).
			</description>
		</method>
		<method name="set_text">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="text" type="String" />
			<description>
				Sets the given column's text value.
			</description>
		</method>
		<method name="set_text_align">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="text_align" type="int" enum="TreeItem.TextAlign" />
			<description>
				Sets the given column's text alignment. See [enum TextAlign] for possible values.
			</description>
		</method>
		<method name="set_tooltip">
			<return type="void" />
			<argument index="0" name="column" type="int" />
			<argument index="1" name="tooltip" type="String" />
			<description>
				Sets the given column's tooltip text.
			</description>
		</method>
	</methods>
	<members>
		<member name="collapsed" type="bool" setter="set_collapsed" getter="is_collapsed">
			If [code]true[/code], the TreeItem is collapsed.
		</member>
		<member name="custom_minimum_height" type="int" setter="set_custom_minimum_height" getter="get_custom_minimum_height">
			The custom minimum height.
		</member>
		<member name="disable_folding" type="bool" setter="set_disable_folding" getter="is_folding_disabled">
			If [code]true[/code], folding is disabled for this TreeItem.
		</member>
	</members>
	<constants>
		<constant name="CELL_MODE_STRING" value="0" enum="TreeCellMode">
			Cell contains a string.
		</constant>
		<constant name="CELL_MODE_CHECK" value="1" enum="TreeCellMode">
			Cell contains a checkbox.
		</constant>
		<constant name="CELL_MODE_RANGE" value="2" enum="TreeCellMode">
			Cell contains a range.
		</constant>
		<constant name="CELL_MODE_ICON" value="3" enum="TreeCellMode">
			Cell contains an icon.
		</constant>
		<constant name="CELL_MODE_CUSTOM" value="4" enum="TreeCellMode">
		</constant>
		<constant name="ALIGN_LEFT" value="0" enum="TextAlign">
			Align text to the left. See [code]set_text_align()[/code].
		</constant>
		<constant name="ALIGN_CENTER" value="1" enum="TextAlign">
			Center text. See [code]set_text_align()[/code].
		</constant>
		<constant name="ALIGN_RIGHT" value="2" enum="TextAlign">
			Align text to the right. See [code]set_text_align()[/code].
		</constant>
	</constants>
</class>
