+ m_needParent = true;
+ m_acceptsFocus = true;
+
+ if (!PreCreation( parent, pos, size ) ||
+ !CreateBase( parent, id, pos, size, style, validator, name ))
+ {
+ wxFAIL_MSG( wxT("wxButton creation failed") );
+ return false;
+ }
+
+ m_widget = gtk_button_new_with_mnemonic("");
+
+ float x_alignment = 0.5;
+ if (HasFlag(wxBU_LEFT))
+ x_alignment = 0.0;
+ else if (HasFlag(wxBU_RIGHT))
+ x_alignment = 1.0;
+
+ float y_alignment = 0.5;
+ if (HasFlag(wxBU_TOP))
+ y_alignment = 0.0;
+ else if (HasFlag(wxBU_BOTTOM))
+ y_alignment = 1.0;
+
+#ifdef __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(GTK_BIN(m_widget)->child))
+ gtk_misc_set_alignment(GTK_MISC(GTK_BIN(m_widget)->child),
+ x_alignment, y_alignment);
+ }
+
+ SetLabel(label);
+
+ if (style & wxNO_BORDER)
+ gtk_button_set_relief( GTK_BUTTON(m_widget), GTK_RELIEF_NONE );
+
+ g_signal_connect_after (m_widget, "clicked",
+ G_CALLBACK (gtk_button_clicked_callback),
+ this);
+
+ g_signal_connect_after (m_widget, "style_set",
+ G_CALLBACK (gtk_button_style_set_callback),
+ this);
+
+ m_parent->DoAddChild( this );
+
+ PostCreation(size);
+
+ return true;
+}
+
+
+void wxButton::SetDefault()
+{
+ wxWindow *parent = GetParent();
+ wxCHECK_RET( parent, _T("button without parent?") );