From 7ce02b642eee600b7206563030c8feaa8af3fe5b Mon Sep 17 00:00:00 2001 From: Michael Alexsander Date: Fri, 24 Sep 2021 01:26:59 -0300 Subject: [PATCH] Expose `TabContainer`'s tab hidding for scripts --- doc/classes/TabContainer.xml | 24 ++++++++++++++++++------ doc/classes/Tabs.xml | 7 +++---- scene/gui/tab_container.cpp | 2 ++ 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/doc/classes/TabContainer.xml b/doc/classes/TabContainer.xml index 77bd7b1a0ad..4c50aa4e1f1 100644 --- a/doc/classes/TabContainer.xml +++ b/doc/classes/TabContainer.xml @@ -6,8 +6,6 @@ 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. @@ -50,6 +48,13 @@ Returns [code]true[/code] if the tab at index [code]tab_idx[/code] is disabled. + + + + + Returns [code]true[/code] if the tab at index [code]tab_idx[/code] is hidden. + + @@ -89,8 +94,15 @@ - 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]. + If [code]disabled[/code] is [code]true[/code], disables the tab at index [code]tab_idx[/code], making it non-interactable. + + + + + + + + If [code]hidden[/code] is [code]true[/code], hides the tab at index [code]tab_idx[/code], making it disappear from the tab area. @@ -106,14 +118,14 @@ - 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]. + Sets a title for the tab at index [code]tab_idx[/code]. Tab titles default to the name of the indexed child node. - 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]. + Defines rearrange group id, choose for each [TabContainer] the same value to enable tab drag between [TabContainer]. Enable drag with [member drag_to_rearrange_enabled]. diff --git a/doc/classes/Tabs.xml b/doc/classes/Tabs.xml index f4c89a8b169..3ee3feb3653 100644 --- a/doc/classes/Tabs.xml +++ b/doc/classes/Tabs.xml @@ -108,7 +108,7 @@ - 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]. + Returns the title of the tab at index [code]tab_idx[/code]. @@ -144,8 +144,7 @@ - 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 it is also removed with [method set_tab_title]. + If [code]disabled[/code] is [code]true[/code], disables the tab at index [code]tab_idx[/code], making it non-interactable. @@ -193,7 +192,7 @@ - Defines the rearrange group ID. Choose for each [Tabs] the same value to dragging tabs between [Tabs]. Enable drag with [code]set_drag_to_rearrange_enabled(true)[/code]. + 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]. diff --git a/scene/gui/tab_container.cpp b/scene/gui/tab_container.cpp index a423dc01732..d63ea776a35 100644 --- a/scene/gui/tab_container.cpp +++ b/scene/gui/tab_container.cpp @@ -1210,6 +1210,8 @@ void TabContainer::_bind_methods() { ClassDB::bind_method(D_METHOD("get_tab_icon", "tab_idx"), &TabContainer::get_tab_icon); ClassDB::bind_method(D_METHOD("set_tab_disabled", "tab_idx", "disabled"), &TabContainer::set_tab_disabled); ClassDB::bind_method(D_METHOD("get_tab_disabled", "tab_idx"), &TabContainer::get_tab_disabled); + ClassDB::bind_method(D_METHOD("set_tab_hidden", "tab_idx", "hidden"), &TabContainer::set_tab_hidden); + ClassDB::bind_method(D_METHOD("get_tab_hidden", "tab_idx"), &TabContainer::get_tab_hidden); ClassDB::bind_method(D_METHOD("get_tab_idx_at_point", "point"), &TabContainer::get_tab_idx_at_point); ClassDB::bind_method(D_METHOD("set_popup", "popup"), &TabContainer::set_popup); ClassDB::bind_method(D_METHOD("get_popup"), &TabContainer::get_popup);