+ m_mouseHovers =
+ m_isPressed = false;
+}
+
+bool wxBitmapButton::Create( wxWindow *parent,
+ wxWindowID id,
+ const wxBitmap& bitmap,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxValidator& validator,
+ const wxString &name )
+{
+ if (!PreCreation( parent, pos, size ) ||
+ !CreateBase( parent, id, pos, size, style, validator, name ))
+ {
+ wxFAIL_MSG( wxT("wxBitmapButton creation failed") );
+ return false;
+ }
+
+ m_bmpNormal = bitmap;
+
+ m_widget = gtk_button_new();
+ g_object_ref(m_widget);
+
+ if (style & wxNO_BORDER)
+ gtk_button_set_relief( GTK_BUTTON(m_widget), GTK_RELIEF_NONE );
+
+ if (m_bmpNormal.Ok())
+ {
+ OnSetBitmap();
+ }
+
+ g_signal_connect_after (m_widget, "clicked",
+ G_CALLBACK (gtk_bmpbutton_clicked_callback),
+ this);
+
+ g_signal_connect (m_widget, "enter",
+ G_CALLBACK (gtk_bmpbutton_enter_callback), this);
+ g_signal_connect (m_widget, "leave",
+ G_CALLBACK (gtk_bmpbutton_leave_callback), this);
+ g_signal_connect (m_widget, "pressed",
+ G_CALLBACK (gtk_bmpbutton_press_callback), this);
+ g_signal_connect (m_widget, "released",
+ G_CALLBACK (gtk_bmpbutton_release_callback), this);
+
+ m_parent->DoAddChild( this );
+
+ PostCreation(size);
+
+ return true;
+}