X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e53b3d16de127872e39bf276f7e616b32f161645..cc4d5638c66a409e421420ed7110917755a66788:/src/osx/bmpbuttn_osx.cpp diff --git a/src/osx/bmpbuttn_osx.cpp b/src/osx/bmpbuttn_osx.cpp index 195c0ffc79..581ddd0865 100644 --- a/src/osx/bmpbuttn_osx.cpp +++ b/src/osx/bmpbuttn_osx.cpp @@ -4,7 +4,6 @@ // 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 ///////////////////////////////////////////////////////////////////////////// @@ -20,25 +19,23 @@ #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, + 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 ) ) + DontCreatePeer(); + + if ( !wxBitmapButtonBase::Create(parent, id, pos, size, style, + validator, name) ) return false; if ( style & wxBU_AUTODRAW ) @@ -52,35 +49,27 @@ bool wxBitmapButton::Create( wxWindow *parent, m_marginY = 0; } - m_bmpNormal = bitmap; + m_bitmaps[State_Normal] = bitmap; - m_peer = wxWidgetImpl::CreateBitmapButton( this, parent, id, bitmap, pos, size, style, GetExtraStyle() ); + SetPeer(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; + wxSize best(m_marginX, m_marginY); - best.x = 2 * m_marginX; - best.y = 2 * m_marginY; - if ( m_bmpNormal.Ok() ) + best *= 2; + + if ( GetBitmapLabel().IsOk() ) { - best.x += m_bmpNormal.GetWidth(); - best.y += m_bmpNormal.GetHeight(); + best += GetBitmapLabel().GetSize(); } return best; } -#endif +#endif // wxUSE_BMPBUTTON