diff options
Diffstat (limited to 'scene/gui/tab_bar.cpp')
| -rw-r--r-- | scene/gui/tab_bar.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/scene/gui/tab_bar.cpp b/scene/gui/tab_bar.cpp index 5eb5a519ff..d664bea168 100644 --- a/scene/gui/tab_bar.cpp +++ b/scene/gui/tab_bar.cpp @@ -791,6 +791,21 @@ bool TabBar::is_tab_hidden(int p_tab) const { return tabs[p_tab].hidden; } +void TabBar::set_tab_metadata(int p_tab, const Variant &p_metadata) { + ERR_FAIL_INDEX(p_tab, tabs.size()); + + if (tabs[p_tab].metadata == p_metadata) { + return; + } + + tabs.write[p_tab].metadata = p_metadata; +} + +Variant TabBar::get_tab_metadata(int p_tab) const { + ERR_FAIL_INDEX_V(p_tab, tabs.size(), Variant()); + return tabs[p_tab].metadata; +} + void TabBar::set_tab_button_icon(int p_tab, const Ref<Texture2D> &p_icon) { ERR_FAIL_INDEX(p_tab, tabs.size()); @@ -1607,6 +1622,8 @@ void TabBar::_bind_methods() { ClassDB::bind_method(D_METHOD("is_tab_disabled", "tab_idx"), &TabBar::is_tab_disabled); ClassDB::bind_method(D_METHOD("set_tab_hidden", "tab_idx", "hidden"), &TabBar::set_tab_hidden); ClassDB::bind_method(D_METHOD("is_tab_hidden", "tab_idx"), &TabBar::is_tab_hidden); + ClassDB::bind_method(D_METHOD("set_tab_metadata", "tab_idx", "metadata"), &TabBar::set_tab_metadata); + ClassDB::bind_method(D_METHOD("get_tab_metadata", "tab_idx"), &TabBar::get_tab_metadata); ClassDB::bind_method(D_METHOD("remove_tab", "tab_idx"), &TabBar::remove_tab); ClassDB::bind_method(D_METHOD("add_tab", "title", "icon"), &TabBar::add_tab, DEFVAL(""), DEFVAL(Ref<Texture2D>())); ClassDB::bind_method(D_METHOD("get_tab_idx_at_point", "point"), &TabBar::get_tab_idx_at_point); |
