1
0
mirror of https://github.com/godotengine/godot.git synced 2025-12-03 16:55:53 +00:00

Merge pull request #75959 from ShadyChibinko/tab_metadata_3x

[3.x] Add tab Metadata to Tabs & TabContainer
This commit is contained in:
Rémi Verschelde
2023-06-07 14:46:21 +02:00
6 changed files with 72 additions and 0 deletions

View File

@@ -474,6 +474,21 @@ bool Tabs::get_tab_disabled(int p_tab) const {
return tabs[p_tab].disabled;
}
void Tabs::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 Tabs::get_tab_metadata(int p_tab) const {
ERR_FAIL_INDEX_V(p_tab, tabs.size(), Variant());
return tabs[p_tab].metadata;
}
void Tabs::set_tab_right_button(int p_tab, const Ref<Texture> &p_right_button) {
ERR_FAIL_INDEX(p_tab, tabs.size());
tabs.write[p_tab].right_button = p_right_button;
@@ -963,6 +978,8 @@ void Tabs::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_tab_button_icon", "tab_idx"), &Tabs::get_tab_right_button);
ClassDB::bind_method(D_METHOD("set_tab_disabled", "tab_idx", "disabled"), &Tabs::set_tab_disabled);
ClassDB::bind_method(D_METHOD("get_tab_disabled", "tab_idx"), &Tabs::get_tab_disabled);
ClassDB::bind_method(D_METHOD("set_tab_metadata", "tab_idx", "metadata"), &Tabs::set_tab_metadata);
ClassDB::bind_method(D_METHOD("get_tab_metadata", "tab_idx"), &Tabs::get_tab_metadata);
ClassDB::bind_method(D_METHOD("remove_tab", "tab_idx"), &Tabs::remove_tab);
ClassDB::bind_method(D_METHOD("add_tab", "title", "icon"), &Tabs::add_tab, DEFVAL(""), DEFVAL(Ref<Texture>()));
ClassDB::bind_method(D_METHOD("set_tab_align", "align"), &Tabs::set_tab_align);