diff options
Diffstat (limited to 'scene/gui/panel_container.cpp')
-rw-r--r-- | scene/gui/panel_container.cpp | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/scene/gui/panel_container.cpp b/scene/gui/panel_container.cpp index 62b9296409..9abdfac009 100644 --- a/scene/gui/panel_container.cpp +++ b/scene/gui/panel_container.cpp @@ -31,56 +31,57 @@ #include "panel_container.h" Size2 PanelContainer::get_minimum_size() const { - Ref<StyleBox> style; - if (has_theme_stylebox("panel")) + if (has_theme_stylebox("panel")) { style = get_theme_stylebox("panel"); - else + } else { style = get_theme_stylebox("panel", "PanelContainer"); + } Size2 ms; for (int i = 0; i < get_child_count(); i++) { - Control *c = Object::cast_to<Control>(get_child(i)); - if (!c || !c->is_visible()) + if (!c || !c->is_visible()) { continue; - if (c->is_set_as_toplevel()) + } + if (c->is_set_as_toplevel()) { continue; + } Size2 minsize = c->get_combined_minimum_size(); ms.width = MAX(ms.width, minsize.width); ms.height = MAX(ms.height, minsize.height); } - if (style.is_valid()) + if (style.is_valid()) { ms += style->get_minimum_size(); + } return ms; } void PanelContainer::_notification(int p_what) { - if (p_what == NOTIFICATION_DRAW) { - RID ci = get_canvas_item(); Ref<StyleBox> style; - if (has_theme_stylebox("panel")) + if (has_theme_stylebox("panel")) { style = get_theme_stylebox("panel"); - else + } else { style = get_theme_stylebox("panel", "PanelContainer"); + } style->draw(ci, Rect2(Point2(), get_size())); } if (p_what == NOTIFICATION_SORT_CHILDREN) { - Ref<StyleBox> style; - if (has_theme_stylebox("panel")) + if (has_theme_stylebox("panel")) { style = get_theme_stylebox("panel"); - else + } else { style = get_theme_stylebox("panel", "PanelContainer"); + } Size2 size = get_size(); Point2 ofs; @@ -90,12 +91,13 @@ void PanelContainer::_notification(int p_what) { } for (int i = 0; i < get_child_count(); i++) { - Control *c = Object::cast_to<Control>(get_child(i)); - if (!c || !c->is_visible_in_tree()) + if (!c || !c->is_visible_in_tree()) { continue; - if (c->is_set_as_toplevel()) + } + if (c->is_set_as_toplevel()) { continue; + } fit_child_in_rect(c, Rect2(ofs, size)); } |