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
//-----------------------------------------------------------------------------
else if (HasFlag(wxBU_BOTTOM))
y_alignment = 1.0;
-#if GTK_CHECK_VERSION(2,4,0)
- gtk_button_set_alignment(GTK_BUTTON(m_widget), x_alignment, y_alignment);
-#else
- if (GTK_IS_MISC(BUTTON_CHILD(m_widget)))
- gtk_misc_set_alignment (GTK_MISC (BUTTON_CHILD (m_widget)),
- x_alignment, y_alignment);
+#if __WXGTK24__
+ if (!gtk_check_version(2,4,0))
+ {
+ gtk_button_set_alignment(GTK_BUTTON(m_widget), x_alignment, y_alignment);
+ }
+ else
#endif
+ {
+ if (GTK_IS_MISC(BUTTON_CHILD(m_widget)))
+ gtk_misc_set_alignment (GTK_MISC (BUTTON_CHILD (m_widget)),
+ x_alignment, y_alignment);
+ }
SetLabel(label);
if (style & wxNO_BORDER)
gtk_button_set_relief( GTK_BUTTON(m_widget), GTK_RELIEF_NONE );
- gtk_signal_connect( GTK_OBJECT(m_widget), "clicked",
+ 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);
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