+ bool changed = (ret != 0) != show;
+ if ( changed )
+ {
+ InvalidateBestSize();
+ }
+
+ return changed;
+}
+
+bool wxRadioBox::IsItemShown(unsigned int item) const
+{
+ wxCHECK_MSG( IsValid(item), false,
+ wxT("invalid item in wxRadioBox::IsItemShown()") );
+
+ // don't use IsWindowVisible() here because it would return false if the
+ // radiobox itself is hidden while we want to only return false if this
+ // button specifically is hidden
+ return (::GetWindowLong((*m_radioButtons)[item],
+ GWL_STYLE) & WS_VISIBLE) != 0;
+}
+
+#if wxUSE_TOOLTIPS
+
+bool wxRadioBox::HasToolTips() const
+{
+ return wxStaticBox::HasToolTips() || wxRadioBoxBase::HasItemToolTips();
+}
+
+void wxRadioBox::DoSetItemToolTip(unsigned int item, wxToolTip *tooltip)
+{
+ // we have already checked for the item to be valid in wxRadioBoxBase
+ const HWND hwndRbtn = (*m_radioButtons)[item];
+ if ( tooltip != NULL )
+ tooltip->Add(hwndRbtn);
+ else // unset the tooltip
+ wxToolTip::Remove(hwndRbtn, 0, wxRect(0,0,0,0));
+ // the second parameter can be zero since it's ignored by Remove()
+ // as we pass a rect for which wxRect::IsEmpty()==true...
+}
+
+#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;