An internal control for a single item inside [Tree]. A single item of a [Tree] control. It can contain other [TreeItem]s as children, which allows it to create a hierarchy. It can also contain text and buttons. [TreeItem] is not a [Node], it is internal to the [Tree]. To create a [TreeItem], use [method Tree.create_item] or [method TreeItem.create_child]. To remove a [TreeItem], use [method Object.free]. [b]Note:[/b] The ID values used for buttons are 32-bit, unlike [int] which is always 64-bit. They go from [code]-2147483648[/code] to [code]2147483647[/code]. Adds a button with [Texture2D] [param button] at column [param column]. The [param id] is used to identify the button in the according [signal Tree.button_clicked] signal and can be different from the buttons index. 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 [param disabled] and have a [param tooltip_text]. Adds a previously unparented [TreeItem] as a direct child of this one. The [param child] item must not be a part of any [Tree] or parented to any [TreeItem]. See also [method remove_child]. Calls the [param method] on the actual TreeItem and its children recursively. Pass parameters as a comma separated list. Resets the background color for the given column to default. Resets the color for the given column to default. Creates an item and adds it as a child. The new item will be inserted as position [param index] (the default value [code]-1[/code] means the last position), or it will be the last child if [param index] is higher than the child count. Deselects the given column. Removes the button at index [param button_index] in column [param column]. Returns the text autowrap mode in the given [param column]. By default it is [constant TextServer.AUTOWRAP_OFF]. Returns the [Texture2D] of the button at index [param button_index] in column [param column]. Returns the button index if there is a button with ID [param id] in column [param column], otherwise returns -1. Returns the color of the button with ID [param id] in column [param column]. If the specified button does not exist, returns [constant Color.BLACK]. Returns the number of buttons in column [param column]. Returns the ID for the button at index [param button_index] in column [param column]. Returns the tooltip text for the button at index [param button_index] in column [param column]. Returns the column's cell mode. Returns a child item by its [param index] (see [method get_child_count]). This method is often used for iterating all children of an item. Negative indices access the children from the last one. Returns the number of child items. Returns an array of references to the item's children. Returns the custom background color of column [param column]. Returns the custom color of column [param column]. Returns the custom callback of column [param column]. Returns custom font used to draw text in the column [param column]. Returns custom font size used to draw text in the column [param column]. Returns [code]true[/code] if [code]expand_right[/code] is set. Returns the TreeItem's first child. Returns the given column's icon [Texture2D]. Error if no icon is set. Returns the maximum allowed width of the icon in the given [param column]. Returns the [Color] modulating the column's icon. Returns the icon [Texture2D] region as [Rect2]. Returns the node's order in the tree. For example, if called on the first child item the position is [code]0[/code]. Returns item's text language code. Returns the metadata value that was set for the given column using [method set_metadata]. Returns the next sibling TreeItem in the tree or a null object if there is none. Returns the next TreeItem in the tree (in the context of a depth-first search) or a [code]null[/code] object if there is none. If [param wrap] is enabled, the method will wrap around to the first element in the tree when called on the last element, otherwise it returns [code]null[/code]. Returns the next visible TreeItem in the tree (in the context of a depth-first search) or a [code]null[/code] object if there is none. If [param wrap] 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]. Returns the parent TreeItem or a null object if there is none. Returns the previous sibling TreeItem in the tree or a null object if there is none. Returns the previous TreeItem in the tree (in the context of a depth-first search) or a [code]null[/code] object if there is none. If [param wrap] is enabled, the method will wrap around to the last element in the tree when called on the first visible element, otherwise it returns [code]null[/code]. Returns the previous visible sibling TreeItem in the tree (in the context of a depth-first search) or a [code]null[/code] object if there is none. If [param wrap] 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]. Returns the value of a [constant CELL_MODE_RANGE] column. Returns a dictionary containing the range parameters for a given column. The keys are "min", "max", "step", and "expr". Returns the BiDi algorithm override set for this cell. Returns the additional BiDi options set for this cell. Gets the suffix string shown after the column value. Returns the given column's text. Returns the given column's text alignment. Returns item's text base writing direction. Returns the clipping behavior when the text exceeds the item's bounding rectangle in the given [param column]. By default it is [constant TextServer.OVERRUN_TRIM_ELLIPSIS]. Returns the given column's tooltip text. Returns the [Tree] that owns this TreeItem. Returns [code]true[/code] if this [TreeItem], or any of its descendants, is collapsed. If [param only_visible] is [code]true[/code] it ignores non-visible [TreeItem]s. Returns [code]true[/code] if the button at index [param button_index] for the given [param column] is disabled. Returns [code]true[/code] if the given [param column] is checked. Returns [code]true[/code] if the cell was made into a button with [method set_custom_as_button]. Returns [code]true[/code] if the given [param column] is multiline editable. Returns [code]true[/code] if the given [param column] is editable. Returns [code]true[/code] if the given [param column] is indeterminate. Returns [code]true[/code] if the given [param column] is selectable. Returns [code]true[/code] if the given [param column] is selected. Returns [code]true[/code] if [member visible] is [code]true[/code] and all its ancestors are also visible. Moves this TreeItem right after the given [param item]. [b]Note:[/b] You can't move to the root or move the root. Moves this TreeItem right before the given [param item]. [b]Note:[/b] You can't move to the root or move the root. Propagates this item's checked status to its children and parents for the given [param column]. It is possible to process the items affected by this method call by connecting to [signal Tree.check_propagated_to_item]. The order that the items affected will be processed is as follows: the item invoking this method, children of that item, and finally parents of that item. If [param emit_signal] is [code]false[/code], then [signal Tree.check_propagated_to_item] will not be emitted. 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 (see [method add_child]). To completely remove a [TreeItem] use [method Object.free]. [b]Note:[/b] If you want to move a child from one [Tree] to another, then instead of removing and adding it manually you can use [method move_before] or [method move_after]. Selects the given [param column]. Sets the autowrap mode in the given [param column]. If set to something other than [constant TextServer.AUTOWRAP_OFF], the text gets wrapped inside the cell's bounding rectangle. Sets the given column's button [Texture2D] at index [param button_index] to [param button]. Sets the given column's button color at index [param button_index] to [param color]. If [code]true[/code], disables the button at index [param button_index] in the given [param column]. Sets the tooltip text for the button at index [param button_index] in the given [param column]. Sets the given column's cell mode to [param mode]. This determines how the cell is displayed and edited. See [enum TreeCellMode] constants for details. If [param checked] is [code]true[/code], the given [param column] is checked. Clears column's indeterminate status. Collapses or uncollapses this [TreeItem] and all the descendants of this item. Makes a cell with [constant CELL_MODE_CUSTOM] display as a non-flat button with a [StyleBox]. Sets the given column's custom background color and whether to just use it as an outline. Sets the given column's custom color. Sets the given column's custom draw callback to the [param callback] method on [param object]. The method named [param callback] should accept two arguments: the [TreeItem] that is drawn and its position and size as a [Rect2]. Sets the given column's custom draw callback. Use an empty [Callable] ([code skip-lint]Callable()[/code]) to clear the custom callback. The cell has to be in [constant CELL_MODE_CUSTOM] to use this feature. The [param callback] should accept two arguments: the [TreeItem] that is drawn and its position and size as a [Rect2]. Sets custom font used to draw text in the given [param column]. Sets custom font size used to draw text in the given [param column]. If [param multiline] is [code]true[/code], the given [param column] is multiline editable. [b]Note:[/b] This option only affects the type of control ([LineEdit] or [TextEdit]) that appears when editing the column. You can set multiline values with [method set_text] even if the column is not multiline editable. If [param enabled] is [code]true[/code], the given [param column] is editable. If [param enable] is [code]true[/code], the given [param column] is expanded to the right. Sets the given cell's icon [Texture2D]. The cell has to be in [constant CELL_MODE_ICON] mode. Sets the maximum allowed width of the icon in the given [param column]. This limit is applied on top of the default size of the icon and on top of [theme_item Tree.icon_max_width]. The height is adjusted according to the icon's ratio. Modulates the given column's icon with [param modulate]. Sets the given column's icon's texture region. If [param indeterminate] is [code]true[/code], the given [param column] is marked indeterminate. [b]Note:[/b] If set [code]true[/code] from [code]false[/code], then column is cleared of checked status. Sets language code of item's text used for line-breaking and text shaping algorithms, if left empty current locale is used instead. 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. Sets the value of a [constant CELL_MODE_RANGE] column. Sets the range of accepted values for a column. The column must be in the [constant CELL_MODE_RANGE] mode. If [param expr] is [code]true[/code], the edit mode slider will use an exponential scale as with [member Range.exp_edit]. If [param selectable] is [code]true[/code], the given [param column] is selectable. Set BiDi algorithm override for the structured text. Has effect for cells that display text. Set additional options for BiDi override. Has effect for cells that display text. Sets a string to be shown after a column's value (for example, a unit abbreviation). Sets the given column's text value. Sets the given column's text alignment. See [enum HorizontalAlignment] for possible values. Sets item's text base writing direction. Sets the clipping behavior when the text exceeds the item's bounding rectangle in the given [param column]. Sets the given column's tooltip text. Uncollapses all [TreeItem]s necessary to reveal this [TreeItem], i.e. all ancestor [TreeItem]s. If [code]true[/code], the TreeItem is collapsed. The custom minimum height. If [code]true[/code], folding is disabled for this TreeItem. If [code]true[/code], the [TreeItem] is visible (default). Note that if a [TreeItem] is set to not be visible, none of its children will be visible either. Cell shows a string label. When editable, the text can be edited using a [LineEdit], or a [TextEdit] popup if [method set_edit_multiline] is used. Cell shows a checkbox, optionally with text. The checkbox can be pressed, released, or indeterminate (via [method set_indeterminate]). The checkbox can't be clicked unless the cell is editable. Cell shows a numeric range. When editable, it can be edited using a range slider. Use [method set_range] to set the value and [method set_range_config] to configure the range. This cell can also be used in a text dropdown mode when you assign a text with [method set_text]. Separate options with a comma, e.g. [code]"Option1,Option2,Option3"[/code]. Cell shows an icon. It can't be edited nor display text. Cell shows as a clickable button. It will display an arrow similar to [OptionButton], but doesn't feature a dropdown (for that you can use [constant CELL_MODE_RANGE]). Clicking the button emits the [signal Tree.item_edited] signal. The button is flat by default, you can use [method set_custom_as_button] to display it with a [StyleBox]. This mode also supports custom drawing using [method set_custom_draw_callback].