+ if ( GetCount() > 0 )
+ {
+ ::SetFocus((*m_radioButtons)[m_selectedButton == wxNOT_FOUND
+ ? 0
+ : m_selectedButton]);
+ }
+}
+
+// Enable a specific button
+bool wxRadioBox::Enable(unsigned int item, bool enable)
+{
+ wxCHECK_MSG( IsValid(item), false,
+ wxT("invalid item in wxRadioBox::Enable()") );
+
+ BOOL ret = MSWEnableHWND((*m_radioButtons)[item], enable);
+
+ return (ret == 0) != enable;
+}
+
+bool wxRadioBox::IsItemEnabled(unsigned int item) const
+{
+ wxCHECK_MSG( IsValid(item), false,
+ wxT("invalid item in wxRadioBox::IsItemEnabled()") );
+
+ return ::IsWindowEnabled((*m_radioButtons)[item]) != 0;
+}
+
+// Show a specific button
+bool wxRadioBox::Show(unsigned int item, bool show)
+{
+ wxCHECK_MSG( IsValid(item), false,
+ wxT("invalid item in wxRadioBox::Show()") );
+
+ BOOL ret = ::ShowWindow((*m_radioButtons)[item], show ? SW_SHOW : SW_HIDE);
+
+ 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();
+}