-proper minimum size computation for TabContainer

This commit is contained in:
Juan Linietsky
2015-01-02 22:34:22 -03:00
parent 7a5a4d135e
commit d722537154
3 changed files with 40 additions and 2 deletions

View File

@ -602,6 +602,39 @@ void TabContainer::get_translatable_strings(List<String> *p_strings) const {
}
Size2 TabContainer::get_minimum_size() const {
Size2 ms;
for(int i=0;i<get_child_count();i++) {
Control *c = get_child(i)->cast_to<Control>();
if (!c)
continue;
if (c->is_set_as_toplevel())
continue;
if (!c->has_meta("_tab_name"))
continue;
if (!c->is_visible())
continue;
Size2 cms = c->get_minimum_size();
ms.x=MAX(ms.x,cms.x);
ms.y=MAX(ms.y,cms.y);
}
Ref<StyleBox> tab_bg = get_stylebox("tab_bg");
Ref<StyleBox> tab_fg = get_stylebox("tab_fg");
Ref<Font> font = get_font("font");
ms.y+=MAX(tab_bg->get_minimum_size().y,tab_fg->get_minimum_size().y);
ms.y+=font->get_height();
return ms;
}
void TabContainer::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_input_event"),&TabContainer::_input_event);