|
@@ -408,6 +408,7 @@ void Tabs::set_current_tab(int p_current) {
|
|
if (current == p_current) return;
|
|
if (current == p_current) return;
|
|
ERR_FAIL_INDEX(p_current, get_tab_count());
|
|
ERR_FAIL_INDEX(p_current, get_tab_count());
|
|
|
|
|
|
|
|
+ previous = current;
|
|
current = p_current;
|
|
current = p_current;
|
|
|
|
|
|
_change_notify("current_tab");
|
|
_change_notify("current_tab");
|
|
@@ -422,6 +423,10 @@ int Tabs::get_current_tab() const {
|
|
return current;
|
|
return current;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+int Tabs::get_previous_tab() const {
|
|
|
|
+ return previous;
|
|
|
|
+}
|
|
|
|
+
|
|
int Tabs::get_hovered_tab() const {
|
|
int Tabs::get_hovered_tab() const {
|
|
return hover;
|
|
return hover;
|
|
}
|
|
}
|
|
@@ -624,6 +629,7 @@ void Tabs::add_tab(const String &p_str, const Ref<Texture> &p_icon) {
|
|
void Tabs::clear_tabs() {
|
|
void Tabs::clear_tabs() {
|
|
tabs.clear();
|
|
tabs.clear();
|
|
current = 0;
|
|
current = 0;
|
|
|
|
+ previous = 0;
|
|
call_deferred("_update_hover");
|
|
call_deferred("_update_hover");
|
|
update();
|
|
update();
|
|
}
|
|
}
|
|
@@ -639,8 +645,10 @@ void Tabs::remove_tab(int p_idx) {
|
|
update();
|
|
update();
|
|
minimum_size_changed();
|
|
minimum_size_changed();
|
|
|
|
|
|
- if (current < 0)
|
|
|
|
|
|
+ if (current < 0) {
|
|
current = 0;
|
|
current = 0;
|
|
|
|
+ previous = 0;
|
|
|
|
+ }
|
|
if (current >= tabs.size())
|
|
if (current >= tabs.size())
|
|
current = tabs.size() - 1;
|
|
current = tabs.size() - 1;
|
|
|
|
|
|
@@ -960,6 +968,7 @@ void Tabs::_bind_methods() {
|
|
ClassDB::bind_method(D_METHOD("get_tab_count"), &Tabs::get_tab_count);
|
|
ClassDB::bind_method(D_METHOD("get_tab_count"), &Tabs::get_tab_count);
|
|
ClassDB::bind_method(D_METHOD("set_current_tab", "tab_idx"), &Tabs::set_current_tab);
|
|
ClassDB::bind_method(D_METHOD("set_current_tab", "tab_idx"), &Tabs::set_current_tab);
|
|
ClassDB::bind_method(D_METHOD("get_current_tab"), &Tabs::get_current_tab);
|
|
ClassDB::bind_method(D_METHOD("get_current_tab"), &Tabs::get_current_tab);
|
|
|
|
+ ClassDB::bind_method(D_METHOD("get_previous_tab"), &Tabs::get_previous_tab);
|
|
ClassDB::bind_method(D_METHOD("set_tab_title", "tab_idx", "title"), &Tabs::set_tab_title);
|
|
ClassDB::bind_method(D_METHOD("set_tab_title", "tab_idx", "title"), &Tabs::set_tab_title);
|
|
ClassDB::bind_method(D_METHOD("get_tab_title", "tab_idx"), &Tabs::get_tab_title);
|
|
ClassDB::bind_method(D_METHOD("get_tab_title", "tab_idx"), &Tabs::get_tab_title);
|
|
ClassDB::bind_method(D_METHOD("set_tab_icon", "tab_idx", "icon"), &Tabs::set_tab_icon);
|
|
ClassDB::bind_method(D_METHOD("set_tab_icon", "tab_idx", "icon"), &Tabs::set_tab_icon);
|
|
@@ -1014,6 +1023,7 @@ void Tabs::_bind_methods() {
|
|
Tabs::Tabs() {
|
|
Tabs::Tabs() {
|
|
|
|
|
|
current = 0;
|
|
current = 0;
|
|
|
|
+ previous = 0;
|
|
tab_align = ALIGN_CENTER;
|
|
tab_align = ALIGN_CENTER;
|
|
rb_hover = -1;
|
|
rb_hover = -1;
|
|
rb_pressing = false;
|
|
rb_pressing = false;
|