X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/58b907f6e1ba4a25a99ce65e044fbd4285905aaf..7e4fb3b8168f4f2dbf2f8a246d3e094a8ccba194:/src/gtk1/button.cpp diff --git a/src/gtk1/button.cpp b/src/gtk1/button.cpp index 640ba4139c..e21402f843 100644 --- a/src/gtk1/button.cpp +++ b/src/gtk1/button.cpp @@ -59,6 +59,22 @@ static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxButton * button->GetEventHandler()->ProcessEvent(event); } +//----------------------------------------------------------------------------- +// "style_set" from m_widget +//----------------------------------------------------------------------------- + +static gint +gtk_button_style_set_callback( GtkWidget *m_widget, GtkStyle *WXUNUSED(style), wxButton *win ) +{ + if (g_isIdle) + wxapp_install_idle_handler(); + + if (GTK_WIDGET_REALIZED(m_widget)) + win->SetSize( win->m_x, win->m_y, win->m_width, win->m_height ); + + return FALSE; +} + //----------------------------------------------------------------------------- // wxButton //----------------------------------------------------------------------------- @@ -148,6 +164,9 @@ bool wxButton::Create( wxWindow *parent, wxWindowID id, const wxString &label, gtk_signal_connect_after( GTK_OBJECT(m_widget), "clicked", GTK_SIGNAL_FUNC(gtk_button_clicked_callback), (gpointer*)this ); + gtk_signal_connect_after( GTK_OBJECT(m_widget), "style_set", + GTK_SIGNAL_FUNC(gtk_button_style_set_callback), (gpointer*) this ); + m_parent->DoAddChild( this ); PostCreation(size); @@ -234,6 +253,9 @@ void wxButton::SetLabel( const wxString &lbl ) wxString label2 = PrepareLabelMnemonics(label); gtk_button_set_label(GTK_BUTTON(m_widget), wxGTK_CONV(label2)); gtk_button_set_use_stock(GTK_BUTTON(m_widget), FALSE); + + ApplyWidgetStyle( false ); + #else gtk_label_set(GTK_LABEL(BUTTON_CHILD(m_widget)), wxGTK_CONV(GetLabel())); #endif