#endif
#include "wx/mac/uma.h"
+#include "wx/mac/private.h"
// Item members
{
wxClientDC dc(this) ;
wxMacPortSetter helper(&dc) ;
-
- // the controls sometimes draw outside their boundaries, this
- // should be resolved differently but is not trivial (e.g. drop shadows)
- // since adding them to the border would yield in enormous gaps between
- // the controls
+/*
Rect r = { 0 , 0 , 32000 , 32000 } ;
ClipRect( &r ) ;
+*/
+ int x = 0 , y = 0;
+ wxWindow *parent = GetParent() ;
+ parent->MacWindowToRootWindow( &x,&y ) ;
+ RgnHandle clrgn = NewRgn() ;
+ RgnHandle insidergn = NewRgn() ;
+ wxSize size = parent->GetSize() ;
+ SetRectRgn( insidergn , parent->MacGetLeftBorderSize() , parent->MacGetTopBorderSize() ,
+ size.x - parent->MacGetLeftBorderSize() - parent->MacGetRightBorderSize(),
+ size.y - parent->MacGetTopBorderSize() - parent->MacGetBottomBorderSize()) ;
+
+ CopyRgn( (RgnHandle) parent->MacGetVisibleRegion(false).GetWXHRGN() , clrgn ) ;
+ SectRgn( clrgn , insidergn , clrgn ) ;
+ OffsetRgn( clrgn , x , y ) ;
+ SetClip( clrgn ) ;
+ DisposeRgn( clrgn ) ;
+ DisposeRgn( insidergn ) ;
+
wxDC::MacSetupBackgroundForCurrentPort( MacGetBackgroundBrush() ) ;
UMADrawControl( (ControlHandle) m_macControl ) ;
}
{
wxPaintDC dc(this) ;
wxMacPortSetter helper(&dc) ;
- // the controls sometimes draw outside their boundaries, this
- // should be resolved differently but is not trivial (e.g. drop shadows)
- // since adding them to the border would yield in enormous gaps between
- // the controls
+/*
Rect r = { 0 , 0 , 32000 , 32000 } ;
ClipRect( &r ) ;
+*/
+
+ int x = 0 , y = 0;
+ wxWindow *parent = GetParent() ;
+ parent->MacWindowToRootWindow( &x,&y ) ;
+ RgnHandle clrgn = NewRgn() ;
+ RgnHandle insidergn = NewRgn() ;
+ wxSize size = parent->GetSize() ;
+ SetRectRgn( insidergn , parent->MacGetLeftBorderSize() , parent->MacGetTopBorderSize() ,
+ size.x - parent->MacGetLeftBorderSize() - parent->MacGetRightBorderSize(),
+ size.y - parent->MacGetTopBorderSize() - parent->MacGetBottomBorderSize()) ;
+
+ CopyRgn( (RgnHandle) parent->MacGetVisibleRegion(false).GetWXHRGN() , clrgn ) ;
+ SectRgn( clrgn , insidergn , clrgn ) ;
+ OffsetRgn( clrgn , x , y ) ;
+ SetClip( clrgn ) ;
+ DisposeRgn( clrgn ) ;
+ DisposeRgn( insidergn ) ;
wxDC::MacSetupBackgroundForCurrentPort( MacGetBackgroundBrush() ) ;
UMADrawControl( (ControlHandle) m_macControl ) ;