From: Vadim Zeitlin Date: Sat, 30 Jun 2012 16:33:10 +0000 (+0000) Subject: Create wxStaticBoxSizer elements as children of wxStaticBox in XRC. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/ff1aede6200c5c771288ad731cc966c1e690922e Create wxStaticBoxSizer elements as children of wxStaticBox in XRC. As we now recommend creating the controls shown inside wxStaticBox as its children, and not siblings, follow our own recommendation by doing just this in XRC handler of wxStaticBoxSizer. Also add a test of using a tooltip with a wxStaticBoxSizer element to the XRC demo showing that tooltips do work now for them, unlike before. Closes #14431. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71886 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/samples/xrc/rc/objref.xrc b/samples/xrc/rc/objref.xrc index 03876e6a98..7028045d69 100644 --- a/samples/xrc/rc/objref.xrc +++ b/samples/xrc/rc/objref.xrc @@ -80,6 +80,7 @@ update.gif + See the tooltip! diff --git a/src/xrc/xh_sizer.cpp b/src/xrc/xh_sizer.cpp index 9e3d23d2ff..6a7e591bb3 100644 --- a/src/xrc/xh_sizer.cpp +++ b/src/xrc/xh_sizer.cpp @@ -256,7 +256,16 @@ wxObject* wxSizerXmlHandler::Handle_sizer() m_isInside = true; m_isGBS = (m_class == wxT("wxGridBagSizer")); - CreateChildren(m_parent, true/*only this handler*/); + wxObject* parent = m_parent; +#if wxUSE_STATBOX + // wxStaticBoxSizer's child controls should be parented by the box itself, + // not its parent. + wxStaticBoxSizer* const stsizer = wxDynamicCast(sizer, wxStaticBoxSizer); + if ( stsizer ) + parent = stsizer->GetStaticBox(); +#endif // wxUSE_STATBOX + + CreateChildren(parent, true/*only this handler*/); // set growable rows and cols for sizers which support this if ( wxFlexGridSizer *flexsizer = wxDynamicCast(sizer, wxFlexGridSizer) )