- RgnHandle visRgn = NewRgn() ;
- RgnHandle tempRgn = NewRgn() ;
-
- SetRectRgn( visRgn , 0 , 0 , m_width , m_height ) ;
-
- //TODO : as soon as the new scheme has proven to work correctly, move this to wxStaticBox
- if ( IsKindOf( CLASSINFO( wxStaticBox ) ) )
- {
- int borderTop = 14 ;
- int borderOther = 4 ;
-
- SetRectRgn( tempRgn , borderOther , borderTop , m_width - borderOther , m_height - borderOther ) ;
- DiffRgn( visRgn , tempRgn , visRgn ) ;
- }
-
- if ( !IsTopLevel() )
- {
- wxWindow* parent = GetParent() ;
- while( parent )
- {
- wxSize size = parent->GetSize() ;
- int x , y ;
- x = y = 0 ;
- parent->MacWindowToRootWindow( &x, &y ) ;
- MacRootWindowToWindow( &x , &y ) ;
- SetRectRgn( tempRgn , x , y , x + size.x , y + size.y ) ;
- SectRgn( visRgn , tempRgn , visRgn ) ;
- if ( parent->IsTopLevel() )
- break ;
- parent = parent->GetParent() ;
- }
- }
- if ( respectChildrenAndSiblings )
- {
- if ( GetWindowStyle() & wxCLIP_CHILDREN )
- {
- for (wxNode *node = GetChildren().First(); node; node = node->Next())
- {
- wxWindowMac *child = (wxWindowMac*)node->Data();
+ RgnHandle visRgn = NewRgn() ;
+ RgnHandle tempRgn = NewRgn() ;
+ RgnHandle tempStaticBoxRgn = NewRgn() ;
+
+ SetRectRgn( visRgn , 0 , 0 , m_width , m_height ) ;
+
+ //TODO : as soon as the new scheme has proven to work correctly, move this to wxStaticBox
+ if ( IsKindOf( CLASSINFO( wxStaticBox ) ) )
+ {
+ int borderTop = 14 ;
+ int borderOther = 4 ;
+
+ SetRectRgn( tempStaticBoxRgn , borderOther , borderTop , m_width - borderOther , m_height - borderOther ) ;
+ DiffRgn( visRgn , tempStaticBoxRgn , visRgn ) ;
+ }