+
+void wxButton::SetDefault()
+{
+ wxWindow *parent = GetParent();
+ wxCHECK_RET( parent, _T("button without parent?") );
+
+ parent->SetDefaultItem(this);
+
+ 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 );
+}
+
+/* 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)