X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d7fa7eaa2dc8ef4154ac4d9d739bcfb6be1669ac..b1d7de5ae0c53162b57ac20cfed04264f0f27b30:/src/gtk1/checkbox.cpp diff --git a/src/gtk1/checkbox.cpp b/src/gtk1/checkbox.cpp index 5e0dcb88f2..2a7d0437bf 100644 --- a/src/gtk1/checkbox.cpp +++ b/src/gtk1/checkbox.cpp @@ -8,10 +8,13 @@ ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "checkbox.h" #endif +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + #include "wx/defs.h" #if wxUSE_CHECKBOX @@ -85,8 +88,6 @@ bool wxCheckBox::Create(wxWindow *parent, return FALSE; } - wxControl::SetLabel( label ); - if ( style & wxALIGN_RIGHT ) { // VZ: as I don't know a way to create a right aligned checkbox with @@ -94,7 +95,7 @@ bool wxCheckBox::Create(wxWindow *parent, // left of it m_widgetCheckbox = gtk_check_button_new(); - m_widgetLabel = gtk_label_new(m_label.mbc_str()); + m_widgetLabel = gtk_label_new(""); gtk_misc_set_alignment(GTK_MISC(m_widgetLabel), 0.0, 0.5); m_widget = gtk_hbox_new(FALSE, 0); @@ -106,10 +107,11 @@ bool wxCheckBox::Create(wxWindow *parent, } else { - m_widgetCheckbox = gtk_check_button_new_with_label( m_label.mbc_str() ); + m_widgetCheckbox = gtk_check_button_new_with_label(""); m_widgetLabel = BUTTON_CHILD( m_widgetCheckbox ); m_widget = m_widgetCheckbox; } + SetLabel( label ); gtk_signal_connect( GTK_OBJECT(m_widgetCheckbox), "clicked", @@ -119,8 +121,7 @@ bool wxCheckBox::Create(wxWindow *parent, m_parent->DoAddChild( this ); PostCreation(); - - SetFont( parent->GetFont() ); + InheritAttributes(); wxSize size_best( DoGetBestSize() ); wxSize new_size( size ); @@ -131,9 +132,6 @@ bool wxCheckBox::Create(wxWindow *parent, if ((new_size.x != size.x) || (new_size.y != size.y)) SetSize( new_size.x, new_size.y ); - SetBackgroundColour( parent->GetBackgroundColour() ); - SetForegroundColour( parent->GetForegroundColour() ); - Show( TRUE ); return TRUE; @@ -166,7 +164,12 @@ void wxCheckBox::SetLabel( const wxString& label ) wxControl::SetLabel( label ); - gtk_label_set( GTK_LABEL(m_widgetLabel), GetLabel().mbc_str() ); +#ifdef __WXGTK20__ + wxString label2 = PrepareLabelMnemonics( label ); + gtk_label_set_text_with_mnemonic( GTK_LABEL(m_widgetLabel), wxGTK_CONV( label2 ) ); +#else + gtk_label_set( GTK_LABEL(m_widgetLabel), wxGTK_CONV( GetLabel() ) ); +#endif } bool wxCheckBox::Enable( bool enable ) @@ -216,7 +219,8 @@ void wxCheckBox::OnInternalIdle() } } - UpdateWindowUI(); + if (wxUpdateUIEvent::CanUpdate(this)) + UpdateWindowUI(wxUPDATE_UI_FROMIDLE); } wxSize wxCheckBox::DoGetBestSize() const