--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: src/osx/bmpbuttn_osx.cpp
+// Purpose: wxBitmapButton
+// Author: Stefan Csomor
+// Modified by:
+// Created: 1998-01-01
+// RCS-ID: $Id: bmpbuttn.cpp 54820 2008-07-29 20:04:11Z SC $
+// Copyright: (c) Stefan Csomor
+// Licence: wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#include "wx/wxprec.h"
+
+#if wxUSE_BMPBUTTON
+
+#include "wx/bmpbuttn.h"
+#include "wx/image.h"
+
+#ifndef WX_PRECOMP
+ #include "wx/dcmemory.h"
+#endif
+
+IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton, wxButton)
+
+#include "wx/osx/private.h"
+
+//---------------------------------------------------------------------------
+
+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_macIsUserPane = false;
+
+ // since bitmapbuttonbase is subclass of button calling wxBitmapButtonBase::Create
+ // essentially creates an additional button
+ if ( !wxControl::Create( parent, id, pos, size, style, validator, name ) )
+ return false;
+
+ if ( style & wxBU_AUTODRAW )
+ {
+ m_marginX =
+ m_marginY = wxDEFAULT_BUTTON_MARGIN;
+ }
+ else
+ {
+ m_marginX =
+ m_marginY = 0;
+ }
+
+ m_bmpNormal = bitmap;
+
+ m_peer = wxWidgetImpl::CreateBitmapButton( this, parent, id, bitmap, pos, size, style, GetExtraStyle() );
+
+ MacPostControlCreate( pos, size );
+
+ return true;
+}
+
+void wxBitmapButton::SetBitmapLabel( const wxBitmap& bitmap )
+{
+ InvalidateBestSize();
+
+ m_peer->SetBitmap( bitmap );
+}
+
+wxSize wxBitmapButton::DoGetBestSize() const
+{
+ wxSize best;
+
+ best.x = 2 * m_marginX;
+ best.y = 2 * m_marginY;
+ if ( m_bmpNormal.Ok() )
+ {
+ best.x += m_bmpNormal.GetWidth();
+ best.y += m_bmpNormal.GetHeight();
+ }
+
+ return best;
+}
+
+#endif