// 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 );
-
-#if wxUSE_VALIDATORS
- SetValidator( validator );
-#endif
+ 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 );
void wxBitmapButton::SetLabel( const wxString &label )
{
- wxCHECK_RET( m_widget != NULL, _T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, T("invalid button") );
wxControl::SetLabel( label );
}
wxString wxBitmapButton::GetLabel() const
{
- wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid button") );
+ wxCHECK_MSG( m_widget != NULL, T(""), T("invalid button") );
return wxControl::GetLabel();
}
void wxBitmapButton::SetBitmap()
{
- wxCHECK_RET( m_widget != NULL, _T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, T("invalid button") );
wxBitmap the_one;
void wxBitmapButton::SetBitmapDisabled( const wxBitmap& bitmap )
{
- wxCHECK_RET( m_widget != NULL, _T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, T("invalid button") );
if ( ! m_disabled.Ok() ) return;
m_disabled = bitmap;
void wxBitmapButton::SetBitmapFocus( const wxBitmap& bitmap )
{
- wxCHECK_RET( m_widget != NULL, _T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, T("invalid button") );
if ( ! m_focus.Ok() ) return;
m_focus = bitmap;
void wxBitmapButton::SetBitmapLabel( const wxBitmap& bitmap )
{
- wxCHECK_RET( m_widget != NULL, _T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, T("invalid button") );
if (!m_bitmap.Ok()) return;
m_bitmap = bitmap;
void wxBitmapButton::SetBitmapSelected( const wxBitmap& bitmap )
{
- wxCHECK_RET( m_widget != NULL, _T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, T("invalid button") );
if ( ! m_selected.Ok() ) return;
m_selected = bitmap;