+    return true;
+}
+
+
+wxWindow *wxButton::SetDefault()
+{
+    wxWindow *oldDefault = wxButtonBase::SetDefault();
+
+    GTK_WIDGET_SET_FLAGS( m_widget, GTK_CAN_DEFAULT );
+    gtk_widget_grab_default( m_widget );
+
+    // resize for default border
+    gtk_button_style_set_callback( m_widget, NULL, this );
+
+    return oldDefault;
+}
+
+/* static */
+wxSize wxButtonBase::GetDefaultSize()
+{
+    return wxSize(80,26);
+}
+
+void wxButton::SetLabel( const wxString &lbl )
+{
+    wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
+
+    wxString label(lbl);
+
+    if (label.empty() && wxIsStockID(m_windowId))
+        label = wxGetStockLabel(m_windowId);
+
+    wxControl::SetLabel(label);
+
+    const wxString labelGTK = GTKRemoveMnemonics(label);
+
+    gtk_label_set(GTK_LABEL(BUTTON_CHILD(m_widget)), wxGTK_CONV(labelGTK));
+}
+
+bool wxButton::Enable( bool enable )
+{
+    if ( !wxControl::Enable( enable ) )
+        return false;
+
+    gtk_widget_set_sensitive( BUTTON_CHILD(m_widget), enable );
+
+    return true;
+}
+
+bool wxButton::IsOwnGtkWindow( GdkWindow *window )
+{
+    return (window == m_widget->window);
+}
+
+void wxButton::DoApplyWidgetStyle(GtkRcStyle *style)
+{
+    gtk_widget_modify_style(m_widget, style);
+    gtk_widget_modify_style(BUTTON_CHILD(m_widget), style);