#include "wx/bmpbuttn.h"
+#if wxUSE_BMPBUTTON
+
#include "gdk/gdk.h"
#include "gtk/gtk.h"
// wxBitmapButton
//-----------------------------------------------------------------------------
-IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton,wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton,wxButton)
wxBitmapButton::wxBitmapButton()
{
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( _T("wxBitmapButton creation failed") );
+ return FALSE;
+ }
m_bitmap = bitmap;
m_disabled = bitmap;
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 );
gtk_signal_connect( GTK_OBJECT(m_widget), "released",
GTK_SIGNAL_FUNC(gtk_bmpbutton_release_callback), (gpointer*)this );
- m_parent->AddChild( this );
-
- m_parent->InsertChild( this );
+ m_parent->DoAddChild( this );
PostCreation();
m_isSelected = FALSE;
SetBitmap();
}
+
+#endif
\ No newline at end of file