}
}
CGContextSetAlpha( cgContext , alpha ) ;
+
+ if ( thisWindow->GetBackgroundStyle() == wxBG_STYLE_TRANSPARENT )
+ {
+ HIRect bounds;
+ HIViewGetBounds( controlRef, &bounds );
+ CGContextClearRect( cgContext, bounds );
+ }
+
+
#endif
if ( thisWindow->MacDoRedraw( updateRgn , cEvent.GetTicks() ) )
result = noErr ;
fontToUse = &m_font;
wxClientDC dc( (wxWindowMac*) this ) ;
- long lx,ly,ld,le ;
+ wxCoord lx,ly,ld,le ;
dc.GetTextExtent( string , &lx , &ly , &ld, &le, (wxFont *)fontToUse ) ;
if ( externalLeading )
*externalLeading = le ;
return ;
#if TARGET_API_MAC_OSX
- if ( !m_macBackgroundBrush.Ok() || m_macBackgroundBrush.GetStyle() == wxTRANSPARENT )
+ if ( !m_macBackgroundBrush.Ok() || m_macBackgroundBrush.GetStyle() == wxTRANSPARENT
+ || GetBackgroundStyle() == wxBG_STYLE_TRANSPARENT )
{
event.Skip() ;
}
if ( m_peer->GetNeedsDisplay() )
{
// because HIViewScrollRect does not scroll the already invalidated area we have two options:
+ // in case there is already a pending redraw on that area
// either immediate redraw or full invalidate
#if 1
// is the better overall solution, as it does not slow down scrolling
scrollrect.Offset( -MacGetLeftBorderSize() , -MacGetTopBorderSize() ) ;
m_peer->ScrollRect( &scrollrect , dx , dy ) ;
- // becuase HIViewScrollRect does not scroll the already invalidated area we have two options
- // either immediate redraw or full invalidate
#if 0
- // is the better overall solution, as it does not slow down scrolling
- m_peer->SetNeedsDisplay() ;
-#else
// this would be the preferred version for fast drawing controls
-
HIViewRender(m_peer->GetControlRef()) ;
#endif
}
{
wxRect rc( x, y, w, h );
if (rect->Intersects( rc ))
- child->SetSize( x + dx, y + dy, w, h );
+ child->SetSize( x + dx, y + dy, w, h, wxSIZE_AUTO|wxSIZE_ALLOW_MINUS_ONE );
}
else
{
- child->SetSize( x + dx, y + dy, w, h );
+ child->SetSize( x + dx, y + dy, w, h, wxSIZE_AUTO|wxSIZE_ALLOW_MINUS_ONE );
}
}
}
Rect rect ;
m_peer->GetRect( &rect ) ;
- // auf den umgebenden Rahmen zur\9fck
+ // auf den umgebenden Rahmen zur\81\9fck
InsetRect( &rect, -1 , -1 ) ;
wxTopLevelWindowMac* top = MacGetTopLevelWindow();
void wxWindowMac::Update()
{
#if TARGET_API_MAC_OSX
- MacGetTopLevelWindow()->MacPerformUpdates() ;
+ wxTopLevelWindowMac* top = MacGetTopLevelWindow();
+ if (top)
+ top->MacPerformUpdates() ;
#else
::Draw1Control( m_peer->GetControlRef() ) ;
#endif
void wxWindowMac::OnPaint( wxPaintEvent & event )
{
- if ( wxTheApp->MacGetCurrentEvent() != NULL && wxTheApp->MacGetCurrentEventHandlerCallRef() != NULL )
+ if ( wxTheApp->MacGetCurrentEvent() != NULL && wxTheApp->MacGetCurrentEventHandlerCallRef() != NULL
+ && GetBackgroundStyle() != wxBG_STYLE_TRANSPARENT )
CallNextEventHandler(
(EventHandlerCallRef)wxTheApp->MacGetCurrentEventHandlerCallRef() ,
(EventRef) wxTheApp->MacGetCurrentEvent() ) ;
bool wxWindowMac::SetTransparent(wxByte alpha)
{
#if wxMAC_USE_CORE_GRAPHICS
+ SetBackgroundStyle(wxBG_STYLE_TRANSPARENT);
+
if ( alpha != m_macAlpha )
{
m_macAlpha = alpha ;