X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6de97a3b945c99fb942209df48be26f43c1b436d..520e470fdd0daef09c77938db642e4583933c90d:/src/gtk/button.cpp diff --git a/src/gtk/button.cpp b/src/gtk/button.cpp index 5d95c5ea7b..034e229f18 100644 --- a/src/gtk/button.cpp +++ b/src/gtk/button.cpp @@ -27,11 +27,9 @@ class wxButton; extern bool g_blockEventsOnDrag; //----------------------------------------------------------------------------- -// wxButton +// "clicked" //----------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxButton,wxControl) - static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxButton *button ) { if (!button->HasVMT()) return; @@ -42,8 +40,12 @@ static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxButton * button->GetEventHandler()->ProcessEvent(event); } +//----------------------------------------------------------------------------- +// wxButton //----------------------------------------------------------------------------- +IMPLEMENT_DYNAMIC_CLASS(wxButton,wxControl) + wxButton::wxButton(void) { } @@ -79,7 +81,10 @@ bool wxButton::Create( wxWindow *parent, wxWindowID id, const wxString &label, void wxButton::SetDefault(void) { +/* + GTK_WIDGET_SET_FLAGS( m_widget, GTK_CAN_DEFAULT ); gtk_widget_grab_default( m_widget ); +*/ } void wxButton::SetLabel( const wxString &label ) @@ -90,3 +95,37 @@ void wxButton::SetLabel( const wxString &label ) gtk_label_set( g_label, GetLabel() ); } +void wxButton::Enable( bool enable ) +{ + wxControl::Enable( enable ); + GtkButton *bin = GTK_BUTTON( m_widget ); + GtkWidget *label = bin->child; + gtk_widget_set_sensitive( label, enable ); +} + +void wxButton::SetFont( const wxFont &font ) +{ + if (((wxFont*)&font)->Ok()) + m_font = font; + else + m_font = *wxSWISS_FONT; + + GtkButton *bin = GTK_BUTTON( m_widget ); + GtkWidget *label = bin->child; + + GtkStyle *style = (GtkStyle*) NULL; + if (!m_hasOwnStyle) + { + m_hasOwnStyle = TRUE; + style = gtk_style_copy( gtk_widget_get_style( label ) ); + } + else + { + style = gtk_widget_get_style( label ); + } + + gdk_font_unref( style->font ); + style->font = gdk_font_ref( m_font.GetInternalFont( 1.0 ) ); + + gtk_widget_set_style( label, style ); +}