X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ce4169a4d129fc6cd165b2e9ccc5cf5d48356020..43b5058d590c7acf58e5f75ec015e717d03830a2:/src/gtk/bmpbuttn.cpp diff --git a/src/gtk/bmpbuttn.cpp b/src/gtk/bmpbuttn.cpp index 6661b99efd..32ac3f8575 100644 --- a/src/gtk/bmpbuttn.cpp +++ b/src/gtk/bmpbuttn.cpp @@ -15,8 +15,8 @@ #if wxUSE_BMPBUTTON -#include "gdk/gdk.h" -#include "gtk/gtk.h" +#include +#include //----------------------------------------------------------------------------- // classes @@ -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,13 +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 ); - -#if wxUSE_VALIDATORS - SetValidator( validator ); -#endif + 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; @@ -142,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 ); @@ -189,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(); } @@ -207,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; @@ -216,15 +218,15 @@ void wxBitmapButton::SetBitmap() else { if (m_isSelected) - { - the_one = m_selected; - } + { + the_one = m_selected; + } else - { + { if (m_hasFocus) - the_one = m_focus; + the_one = m_focus; else - the_one = m_bitmap; + the_one = m_bitmap; } } @@ -242,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; @@ -252,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; @@ -262,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; @@ -272,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; @@ -313,5 +315,5 @@ void wxBitmapButton::EndSelect() m_isSelected = FALSE; SetBitmap(); } +#endif -#endif \ No newline at end of file