#include "wx/bmpbuttn.h"
+#if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton, wxButton)
+#endif
#include <wx/mac/uma.h>
-PicHandle MakePict(GWorldPtr wp) ;
+PicHandle MakePict(GWorldPtr wp, GWorldPtr mask ) ;
bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
const wxPoint& pos,
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;
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 ;
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 ;