+ m_bmpNormal =
+ m_bmpDisabled =
+ m_bmpFocus =
+ m_bmpSelected = bitmap;
+
+ m_widget = gtk_button_new();
+
+#if (GTK_MINOR_VERSION > 0)
+ if (style & wxNO_BORDER)
+ gtk_button_set_relief( GTK_BUTTON(m_widget), GTK_RELIEF_NONE );
+#endif
+
+ if (m_bmpNormal.Ok())
+ {
+ wxSize newSize = size;
+ int border = (style & wxNO_BORDER) ? 4 : 10;
+ if (newSize.x == -1)
+ newSize.x = m_bmpNormal.GetWidth()+border;
+ if (newSize.y == -1)
+ newSize.y = m_bmpNormal.GetHeight()+border;
+ SetSize( newSize.x, newSize.y );
+ OnSetBitmap();
+ }
+
+ gtk_signal_connect( GTK_OBJECT(m_widget), "clicked",
+ GTK_SIGNAL_FUNC(gtk_bmpbutton_clicked_callback), (gpointer*)this );
+
+ gtk_signal_connect( GTK_OBJECT(m_widget), "enter",
+ GTK_SIGNAL_FUNC(gtk_bmpbutton_enter_callback), (gpointer*)this );
+ gtk_signal_connect( GTK_OBJECT(m_widget), "leave",
+ GTK_SIGNAL_FUNC(gtk_bmpbutton_leave_callback), (gpointer*)this );
+ gtk_signal_connect( GTK_OBJECT(m_widget), "pressed",
+ GTK_SIGNAL_FUNC(gtk_bmpbutton_press_callback), (gpointer*)this );
+ gtk_signal_connect( GTK_OBJECT(m_widget), "released",
+ GTK_SIGNAL_FUNC(gtk_bmpbutton_release_callback), (gpointer*)this );
+
+ m_parent->DoAddChild( this );
+
+ PostCreation();
+
+ SetBackgroundColour( parent->GetBackgroundColour() );
+
+ Show( TRUE );
+
+ return TRUE;
+}
+
+void wxBitmapButton::SetDefault()