X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9d522606d0a1dfd22bcdc1a386b3dca01fa985e3..b1727cfef7e084b0ba52b69fbe948379d66981da:/src/gtk/radiobut.cpp?ds=sidebyside diff --git a/src/gtk/radiobut.cpp b/src/gtk/radiobut.cpp index c03a82e438..d6440f577a 100644 --- a/src/gtk/radiobut.cpp +++ b/src/gtk/radiobut.cpp @@ -7,11 +7,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// - -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "radiobut.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -40,6 +35,7 @@ extern wxWindowGTK *g_delayedFocus; // "clicked" //----------------------------------------------------------------------------- +extern "C" { static void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioButton *rb ) { @@ -58,6 +54,7 @@ void gtk_radiobutton_clicked_callback( GtkToggleButton *button, wxRadioButton *r event.SetEventObject( rb ); rb->GetEventHandler()->ProcessEvent( event ); } +} //----------------------------------------------------------------------------- // wxRadioButton @@ -187,11 +184,10 @@ bool wxRadioButton::Enable( bool enable ) return TRUE; } -void wxRadioButton::ApplyWidgetStyle() +void wxRadioButton::DoApplyWidgetStyle(GtkRcStyle *style) { - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); - gtk_widget_set_style( BUTTON_CHILD(m_widget), m_widgetStyle ); + gtk_widget_modify_style(m_widget, style); + gtk_widget_modify_style(BUTTON_CHILD(m_widget), style); } bool wxRadioButton::IsOwnGtkWindow( GdkWindow *window ) @@ -238,9 +234,12 @@ wxVisualAttributes wxRadioButton::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(widget); + gtk_widget_destroy(wnd); return attr; }