X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ad81651f00edc6f489d9b6a0839d316a964fd521..d2c6d54928e7ba32b2bf6ddf0ca5f3dd4339758b:/src/mac/carbon/bmpbuttn.cpp diff --git a/src/mac/carbon/bmpbuttn.cpp b/src/mac/carbon/bmpbuttn.cpp index 7c8d8d5b31..c143138609 100644 --- a/src/mac/carbon/bmpbuttn.cpp +++ b/src/mac/carbon/bmpbuttn.cpp @@ -15,11 +15,13 @@ #include "wx/bmpbuttn.h" +#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton, wxButton) +#endif #include -PicHandle MakePict(GWorldPtr wp) ; +PicHandle MakePict(GWorldPtr wp, GWorldPtr mask ) ; bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, const wxPoint& pos, @@ -48,15 +50,13 @@ bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bit if ( height == -1 && bitmap.Ok()) height = bitmap.GetHeight() + 2*m_marginY; - m_macHorizontalBorder = 2 ; // additional pixels around the real control - m_macVerticalBorder = 2 ; Rect bounds ; Str255 title ; MacPreControlCreate( parent , id , "" , pos , wxSize( width , height ) ,style, validator , name , &bounds , title ) ; m_macControl = UMANewControl( parent->GetMacRootWindow() , &bounds , title , true , 0 , kControlBehaviorOffsetContents + kControlContentPictHandle , 0, - kControlBevelButtonNormalBevelProc , (long) this ) ; + (( style & wxBU_AUTODRAW ) ? kControlBevelButtonSmallBevelProc : kControlBevelButtonNormalBevelProc ), (long) this ) ; wxASSERT_MSG( m_macControl != NULL , "No valid mac control" ) ; m_buttonBitmap = bitmap; @@ -68,7 +68,14 @@ bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bit icon = bmap->m_hPict ; else if ( bmap->m_bitmapType == kMacBitmapTypeGrafWorld ) { - icon = MakePict( bmap->m_hBitmap ) ; + if ( m_buttonBitmap.GetMask() ) + { + icon = MakePict( bmap->m_hBitmap , m_buttonBitmap.GetMask()->GetMaskBitmap() ) ; + } + else + { + icon = MakePict( bmap->m_hBitmap , NULL ) ; + } } } ControlButtonContentInfo info ; @@ -94,7 +101,14 @@ void wxBitmapButton::SetBitmapLabel(const wxBitmap& bitmap) icon = bmap->m_hPict ; else if ( bmap->m_bitmapType == kMacBitmapTypeGrafWorld ) { - icon = MakePict( bmap->m_hBitmap ) ; + if ( m_buttonBitmap.GetMask() ) + { + icon = MakePict( bmap->m_hBitmap , m_buttonBitmap.GetMask()->GetMaskBitmap() ) ; + } + else + { + icon = MakePict( bmap->m_hBitmap , NULL ) ; + } } } ControlButtonContentInfo info ;