+
+ // JS 2012-03-09: introducing wxRIBBON_PANEL_STRETCH to allow
+ // the panel to fill its parent page. For example we might have
+ // a list of styles in one of the pages, which should stretch to
+ // fill available space.
+ return (m_flags & wxRIBBON_PANEL_STRETCH) != 0;
+}
+
+// Finds the best width and height given the parent's width and height
+wxSize wxRibbonPanel::GetBestSizeForParentSize(const wxSize& parentSize) const
+{
+ if (GetChildren().GetCount() == 1)
+ {
+ wxWindow* win = GetChildren().GetFirst()->GetData();
+ wxRibbonControl* control = wxDynamicCast(win, wxRibbonControl);
+ if (control)
+ {
+ wxClientDC temp_dc((wxRibbonPanel*) this);
+ wxSize clientParentSize = m_art->GetPanelClientSize(temp_dc, this, parentSize, NULL);
+ wxSize childSize = control->GetBestSizeForParentSize(clientParentSize);
+ wxSize overallSize = m_art->GetPanelSize(temp_dc, this, childSize, NULL);
+ return overallSize;
+ }
+ }
+ return GetSize();