-#include "wx/gtk/private.h"
-
-//-----------------------------------------------------------------------------
-// classes
-//-----------------------------------------------------------------------------
-
-class wxBitmapButton;
-
-//-----------------------------------------------------------------------------
-// idle system
-//-----------------------------------------------------------------------------
-
-extern void wxapp_install_idle_handler();
-extern bool g_isIdle;
-
-//-----------------------------------------------------------------------------
-// data
-//-----------------------------------------------------------------------------
-
-extern bool g_blockEventsOnDrag;
-
-//-----------------------------------------------------------------------------
-// "clicked"
-//-----------------------------------------------------------------------------
-
-extern "C" {
-static void gtk_bmpbutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
-{
- if (g_isIdle)
- wxapp_install_idle_handler();
-
- if (!button->m_hasVMT) return;
- if (g_blockEventsOnDrag) return;
-
- wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, button->GetId());
- event.SetEventObject(button);
- button->GetEventHandler()->ProcessEvent(event);
-}
-}
-
-//-----------------------------------------------------------------------------
-// "enter"
-//-----------------------------------------------------------------------------
-
-extern "C" {
-static void gtk_bmpbutton_enter_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
-{
- if (!button->m_hasVMT) return;
- if (g_blockEventsOnDrag) return;
-
- button->HasFocus();
-}
-}
-
-//-----------------------------------------------------------------------------
-// "leave"
-//-----------------------------------------------------------------------------
-
-extern "C" {
-static void gtk_bmpbutton_leave_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
-{
- if (!button->m_hasVMT) return;
- if (g_blockEventsOnDrag) return;
-
- button->NotFocus();
-}
-}
-
-//-----------------------------------------------------------------------------
-// "pressed"
-//-----------------------------------------------------------------------------
-
-extern "C" {
-static void gtk_bmpbutton_press_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
-{
- if (!button->m_hasVMT) return;
- if (g_blockEventsOnDrag) return;
-
- button->StartSelect();
-}
-}
-
-//-----------------------------------------------------------------------------
-// "released"
-//-----------------------------------------------------------------------------
-
-extern "C" {
-static void gtk_bmpbutton_release_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
-{
- if (!button->m_hasVMT) return;
- if (g_blockEventsOnDrag) return;
-
- button->EndSelect();
-}
-}
-
-//-----------------------------------------------------------------------------
-// wxBitmapButton
-//-----------------------------------------------------------------------------
-
-IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton,wxButton)
-
-void wxBitmapButton::Init()
-{
- m_hasFocus =
- m_isSelected = 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 )
-{
- m_needParent = true;
- m_acceptsFocus = true;
-
- if (!PreCreation( parent, pos, size ) ||
- !CreateBase( parent, id, pos, size, style, validator, name ))
- {
- wxFAIL_MSG( wxT("wxBitmapButton creation failed") );