X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f5d29b396f837cab85b8d63992cc1b640007db67..227e5e99cd140e628d431dc006d30447ed6ad81a:/src/gtk/radiobut.cpp diff --git a/src/gtk/radiobut.cpp b/src/gtk/radiobut.cpp index aab86976cd..8b93df7380 100644 --- a/src/gtk/radiobut.cpp +++ b/src/gtk/radiobut.cpp @@ -13,6 +13,8 @@ #endif #include "wx/radiobut.h" +#include "gdk/gdk.h" +#include "gtk/gtk.h" //----------------------------------------------------------------------------- // data @@ -53,6 +55,7 @@ bool wxRadioButton::Create( wxWindow *parent, wxWindowID id, const wxString& lab const wxPoint& pos, const wxSize& size, long style, const wxValidator& validator, const wxString& name ) { + m_acceptsFocus = TRUE; m_needParent = TRUE; wxSize newSize = size; @@ -61,7 +64,7 @@ bool wxRadioButton::Create( wxWindow *parent, wxWindowID id, const wxString& lab SetValidator( validator ); - m_widget = gtk_radio_button_new_with_label( (GSList *) NULL, label ); + m_widget = gtk_radio_button_new_with_label( (GSList *) NULL, label.mbc_str() ); m_theOtherRadioButtton = gtk_radio_button_new_with_label( @@ -72,7 +75,7 @@ bool wxRadioButton::Create( wxWindow *parent, wxWindowID id, const wxString& lab m_blockFirstEvent = FALSE; - if (newSize.x == -1) newSize.x = 22+gdk_string_measure( m_widget->style->font, label ); + if (newSize.x == -1) newSize.x = 22+gdk_string_measure( m_widget->style->font, label.mbc_str() ); if (newSize.y == -1) newSize.y = 26; SetSize( newSize.x, newSize.y ); @@ -87,6 +90,7 @@ bool wxRadioButton::Create( wxWindow *parent, wxWindowID id, const wxString& lab SetBackgroundColour( parent->GetBackgroundColour() ); SetForegroundColour( parent->GetForegroundColour() ); + SetFont( parent->GetFont() ); Show( TRUE ); @@ -95,18 +99,21 @@ bool wxRadioButton::Create( wxWindow *parent, wxWindowID id, const wxString& lab void wxRadioButton::SetLabel( const wxString& label ) { - wxCHECK_RET( m_widget != NULL, "invalid radiobutton" ); + wxCHECK_RET( m_widget != NULL, _T("invalid radiobutton") ); wxControl::SetLabel( label ); GtkButton *bin = GTK_BUTTON( m_widget ); GtkLabel *g_label = GTK_LABEL( bin->child ); - gtk_label_set( g_label, GetLabel() ); + gtk_label_set( g_label, GetLabel().mbc_str() ); } void wxRadioButton::SetValue( bool val ) { - wxCHECK_RET( m_widget != NULL, "invalid radiobutton" ); + wxCHECK_RET( m_widget != NULL, _T("invalid radiobutton") ); + if ( val == GetValue() ) + return; + m_blockFirstEvent = TRUE; if (val) @@ -117,14 +124,14 @@ void wxRadioButton::SetValue( bool val ) bool wxRadioButton::GetValue(void) const { - wxCHECK_MSG( m_widget != NULL, FALSE, "invalid radiobutton" ); + wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid radiobutton") ); return GTK_TOGGLE_BUTTON(m_widget)->active; } void wxRadioButton::Enable( bool enable ) { - wxCHECK_RET( m_widget != NULL, "invalid radiobutton" ); + wxCHECK_RET( m_widget != NULL, _T("invalid radiobutton") ); wxControl::Enable( enable ); @@ -137,5 +144,3 @@ void wxRadioButton::ApplyWidgetStyle() gtk_widget_set_style( m_widget, m_widgetStyle ); gtk_widget_set_style( GTK_BUTTON(m_widget)->child, m_widgetStyle ); } - -