+void wxRadioBox::OnInternalIdle()
+{
+ if ( m_lostFocus )
+ {
+ m_hasFocus = false;
+ m_lostFocus = false;
+
+ wxFocusEvent event( wxEVT_KILL_FOCUS, GetId() );
+ event.SetEventObject( this );
+
+ (void)GetEventHandler()->ProcessEvent( event );
+ }
+
+ if (g_delayedFocus == this)
+ {
+ if (GTK_WIDGET_REALIZED(m_widget))
+ {
+ g_delayedFocus = NULL;
+ SetFocus();
+ }
+ }
+}
+
+// static
+wxVisualAttributes
+wxRadioBox::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
+{
+ wxVisualAttributes attr;
+ // NB: we need toplevel window so that GTK+ can find the right style
+ GtkWidget *wnd = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ GtkWidget* widget = gtk_radio_button_new_with_label(NULL, "");
+ gtk_container_add(GTK_CONTAINER(wnd), widget);
+ attr = GetDefaultAttributesFromGTKWidget(widget);
+ gtk_widget_destroy(wnd);
+ return attr;
+}
+
+int wxRadioBox::GetItemFromPoint(const wxPoint& point) const
+{
+ const wxPoint pt = ScreenToClient(point);
+ unsigned n = 0;
+ for ( wxRadioBoxButtonsInfoList::compatibility_iterator
+ node = m_buttonsInfo.GetFirst(); node; node = node->GetNext(), n++ )
+ {
+ if ( m_buttonsInfo[n]->rect.Inside(pt) )
+ return n;
+ }
+
+ return wxNOT_FOUND;
+}
+
+#endif // wxUSE_RADIOBOX