From ff1aede6200c5c771288ad731cc966c1e690922e Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 30 Jun 2012 16:33:10 +0000 Subject: [PATCH] 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 --- samples/xrc/rc/objref.xrc | 1 + src/xrc/xh_sizer.cpp | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) 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) ) -- 2.45.2