X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dcf924a345ea8ffbc1cf6b40b5f75c6005e504c0..e16ebee6a9cb46e71b5e15fe14edf61fd790bb14:/src/gtk1/bmpbuttn.cpp diff --git a/src/gtk1/bmpbuttn.cpp b/src/gtk1/bmpbuttn.cpp index 71e20e97f2..81f655e070 100644 --- a/src/gtk1/bmpbuttn.cpp +++ b/src/gtk1/bmpbuttn.cpp @@ -43,7 +43,8 @@ extern bool g_blockEventsOnDrag; static void gtk_bmpbutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button ) { - if (g_isIdle) wxapp_install_idle_handler(); + if (g_isIdle) + wxapp_install_idle_handler(); if (!button->m_hasVMT) return; if (g_blockEventsOnDrag) return; @@ -105,7 +106,7 @@ static void gtk_bmpbutton_release_callback( GtkWidget *WXUNUSED(widget), wxBitma // wxBitmapButton //----------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton,wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton,wxButton) wxBitmapButton::wxBitmapButton() { @@ -118,11 +119,12 @@ bool wxBitmapButton::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bi m_needParent = TRUE; m_acceptsFocus = TRUE; - wxSize newSize = size; - - PreCreation( parent, id, pos, newSize, style, name ); - - SetValidator( validator ); + if (!PreCreation( parent, pos, size ) || + !CreateBase( parent, id, pos, size, style, validator, name )) + { + wxFAIL_MSG( wxT("wxBitmapButton creation failed") ); + return FALSE; + } m_bitmap = bitmap; m_disabled = bitmap; @@ -140,20 +142,22 @@ bool wxBitmapButton::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bi if (m_bitmap.Ok()) { + wxSize newSize = size; + GdkBitmap *mask = (GdkBitmap *) NULL; if (m_bitmap.GetMask()) mask = m_bitmap.GetMask()->GetBitmap(); GtkWidget *pixmap = gtk_pixmap_new( m_bitmap.GetPixmap(), mask ); gtk_widget_show( pixmap ); gtk_container_add( GTK_CONTAINER(m_widget), pixmap ); + + int border = 10; + if (style & wxNO_BORDER) border = 4; + if (newSize.x == -1) newSize.x = m_bitmap.GetWidth()+border; + if (newSize.y == -1) newSize.y = m_bitmap.GetHeight()+border; + SetSize( newSize.x, newSize.y ); } - int border = 10; - if (style & wxNO_BORDER) border = 4; - if (newSize.x == -1) newSize.x = m_bitmap.GetWidth()+border; - if (newSize.y == -1) newSize.y = m_bitmap.GetHeight()+border; - SetSize( newSize.x, newSize.y ); - gtk_signal_connect( GTK_OBJECT(m_widget), "clicked", GTK_SIGNAL_FUNC(gtk_bmpbutton_clicked_callback), (gpointer*)this ); @@ -187,14 +191,14 @@ void wxBitmapButton::SetDefault() void wxBitmapButton::SetLabel( const wxString &label ) { - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); + wxCHECK_RET( m_widget != NULL, wxT("invalid button") ); wxControl::SetLabel( label ); } wxString wxBitmapButton::GetLabel() const { - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid button") ); + wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid button") ); return wxControl::GetLabel(); } @@ -205,7 +209,7 @@ void wxBitmapButton::ApplyWidgetStyle() void wxBitmapButton::SetBitmap() { - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); + wxCHECK_RET( m_widget != NULL, wxT("invalid button") ); wxBitmap the_one; @@ -240,7 +244,7 @@ void wxBitmapButton::SetBitmap() void wxBitmapButton::SetBitmapDisabled( const wxBitmap& bitmap ) { - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); + wxCHECK_RET( m_widget != NULL, wxT("invalid button") ); if ( ! m_disabled.Ok() ) return; m_disabled = bitmap; @@ -250,7 +254,7 @@ void wxBitmapButton::SetBitmapDisabled( const wxBitmap& bitmap ) void wxBitmapButton::SetBitmapFocus( const wxBitmap& bitmap ) { - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); + wxCHECK_RET( m_widget != NULL, wxT("invalid button") ); if ( ! m_focus.Ok() ) return; m_focus = bitmap; @@ -260,7 +264,7 @@ void wxBitmapButton::SetBitmapFocus( const wxBitmap& bitmap ) void wxBitmapButton::SetBitmapLabel( const wxBitmap& bitmap ) { - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); + wxCHECK_RET( m_widget != NULL, wxT("invalid button") ); if (!m_bitmap.Ok()) return; m_bitmap = bitmap; @@ -270,7 +274,7 @@ void wxBitmapButton::SetBitmapLabel( const wxBitmap& bitmap ) void wxBitmapButton::SetBitmapSelected( const wxBitmap& bitmap ) { - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); + wxCHECK_RET( m_widget != NULL, wxT("invalid button") ); if ( ! m_selected.Ok() ) return; m_selected = bitmap; @@ -311,5 +315,5 @@ void wxBitmapButton::EndSelect() m_isSelected = FALSE; SetBitmap(); } +#endif -#endif \ No newline at end of file