From 345264343a2fa3ee7362a4afb91b669216ee51fe Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Tue, 19 Feb 2008 02:43:29 +0000 Subject: [PATCH] implement wxRadioBox::Reparent(): it didn't reparent the radio buttons (patch 1891030) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51905 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/msw/radiobox.h | 2 ++ src/msw/radiobox.cpp | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/include/wx/msw/radiobox.h b/include/wx/msw/radiobox.h index 86a837aa9f..c2c13ee730 100644 --- a/include/wx/msw/radiobox.h +++ b/include/wx/msw/radiobox.h @@ -111,6 +111,8 @@ public: } #endif // wxUSE_HELP + virtual bool Reparent(wxWindowBase *newParent); + // we inherit a version always returning false from wxStaticBox, override // it to behave normally virtual bool AcceptsFocus() const { return wxControl::AcceptsFocus(); } diff --git a/src/msw/radiobox.cpp b/src/msw/radiobox.cpp index 4fc2d2acbd..e9f53d0f46 100644 --- a/src/msw/radiobox.cpp +++ b/src/msw/radiobox.cpp @@ -461,6 +461,25 @@ void wxRadioBox::DoSetItemToolTip(unsigned int item, wxToolTip *tooltip) #endif // wxUSE_TOOLTIPS +bool wxRadioBox::Reparent(wxWindowBase *newParent) +{ + if ( !wxStaticBox::Reparent(newParent) ) + { + return false; + } + + HWND hwndParent = GetHwndOf(GetParent()); + for ( size_t item = 0; item < m_radioButtons->GetCount(); item++ ) + { + ::SetParent((*m_radioButtons)[item], hwndParent); + } +#ifdef __WXWINCE__ + // put static box under the buttons in the Z-order + SetWindowPos(GetHwnd(), HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE); +#endif + return true; +} + WX_FORWARD_STD_METHODS_TO_SUBWINDOWS(wxRadioBox, wxStaticBox, m_radioButtons) // ----------------------------------------------------------------------------