carbon cfm fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -42,6 +42,61 @@ IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxWindowDC)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "wx/mac/uma.h"
|
#include "wx/mac/uma.h"
|
||||||
|
#include "wx/notebook.h"
|
||||||
|
#include "wx/tabctrl.h"
|
||||||
|
|
||||||
|
|
||||||
|
static wxBrush MacGetBackgroundBrush( wxWindow* window )
|
||||||
|
{
|
||||||
|
wxBrush bkdBrush = window->MacGetBackgroundBrush() ;
|
||||||
|
#if !TARGET_API_MAC_OSX
|
||||||
|
// transparency cannot be handled by the OS when not using composited windows
|
||||||
|
wxWindow* parent = window->GetParent() ;
|
||||||
|
// if we have some 'pseudo' transparency
|
||||||
|
if ( ! bkdBrush.Ok() || bkdBrush.GetStyle() == wxTRANSPARENT || window->GetBackgroundColour() == wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE ) )
|
||||||
|
{
|
||||||
|
// walk up until we find something
|
||||||
|
while( parent != NULL )
|
||||||
|
{
|
||||||
|
if ( parent->GetBackgroundColour() != wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE ) )
|
||||||
|
{
|
||||||
|
// if we have any other colours in the hierarchy
|
||||||
|
bkdBrush.SetColour( parent->GetBackgroundColour() ) ;
|
||||||
|
break ;
|
||||||
|
}
|
||||||
|
if ( parent->IsKindOf( CLASSINFO(wxTopLevelWindow) ) )
|
||||||
|
{
|
||||||
|
bkdBrush = parent->MacGetBackgroundBrush() ;
|
||||||
|
break ;
|
||||||
|
}
|
||||||
|
if ( parent->IsKindOf( CLASSINFO( wxNotebook ) ) || parent->IsKindOf( CLASSINFO( wxTabCtrl ) ) )
|
||||||
|
{
|
||||||
|
Rect extent = { 0 , 0 , 0 , 0 } ;
|
||||||
|
int x , y ;
|
||||||
|
x = y = 0 ;
|
||||||
|
wxSize size = parent->GetSize() ;
|
||||||
|
parent->MacClientToRootWindow( &x , &y ) ;
|
||||||
|
extent.left = x ;
|
||||||
|
extent.top = y ;
|
||||||
|
extent.top-- ;
|
||||||
|
extent.right = x + size.x ;
|
||||||
|
extent.bottom = y + size.y ;
|
||||||
|
bkdBrush.MacSetThemeBackground( kThemeBackgroundTabPane , (WXRECTPTR) &extent ) ;
|
||||||
|
break ;
|
||||||
|
}
|
||||||
|
|
||||||
|
parent = parent->GetParent() ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( !bkdBrush.Ok() || bkdBrush.GetStyle() == wxTRANSPARENT )
|
||||||
|
{
|
||||||
|
// if we did not find something, use a default
|
||||||
|
bkdBrush.MacSetTheme( kThemeBrushDialogBackgroundActive ) ;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return bkdBrush ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
wxWindowDC::wxWindowDC()
|
wxWindowDC::wxWindowDC()
|
||||||
{
|
{
|
||||||
@@ -64,7 +119,7 @@ wxWindowDC::wxWindowDC(wxWindow *window)
|
|||||||
CopyRgn( (RgnHandle) m_macBoundaryClipRgn , (RgnHandle) m_macCurrentClipRgn ) ;
|
CopyRgn( (RgnHandle) m_macBoundaryClipRgn , (RgnHandle) m_macCurrentClipRgn ) ;
|
||||||
m_macPort = UMAGetWindowPort( windowref ) ;
|
m_macPort = UMAGetWindowPort( windowref ) ;
|
||||||
m_ok = TRUE ;
|
m_ok = TRUE ;
|
||||||
SetBackground(window->MacGetBackgroundBrush());
|
SetBackground(MacGetBackgroundBrush(window));
|
||||||
}
|
}
|
||||||
|
|
||||||
wxWindowDC::~wxWindowDC()
|
wxWindowDC::~wxWindowDC()
|
||||||
@@ -110,7 +165,7 @@ wxClientDC::wxClientDC(wxWindow *window)
|
|||||||
m_macPort = UMAGetWindowPort( windowref ) ;
|
m_macPort = UMAGetWindowPort( windowref ) ;
|
||||||
|
|
||||||
m_ok = TRUE ;
|
m_ok = TRUE ;
|
||||||
SetBackground(window->MacGetBackgroundBrush());
|
SetBackground(MacGetBackgroundBrush(window));
|
||||||
SetFont( window->GetFont() ) ;
|
SetFont( window->GetFont() ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,7 +212,7 @@ wxPaintDC::wxPaintDC(wxWindow *window)
|
|||||||
m_macPort = UMAGetWindowPort( windowref ) ;
|
m_macPort = UMAGetWindowPort( windowref ) ;
|
||||||
|
|
||||||
m_ok = TRUE ;
|
m_ok = TRUE ;
|
||||||
SetBackground(window->MacGetBackgroundBrush());
|
SetBackground(MacGetBackgroundBrush(window));
|
||||||
SetFont( window->GetFont() ) ;
|
SetFont( window->GetFont() ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -505,14 +505,10 @@ pascal OSStatus wxMacSetupControlBackground( ControlRef iControl , SInt16 iMessa
|
|||||||
wxWindow* wx = (wxWindow*) wxFindControlFromMacControl( iControl ) ;
|
wxWindow* wx = (wxWindow*) wxFindControlFromMacControl( iControl ) ;
|
||||||
if ( wx != NULL )
|
if ( wx != NULL )
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
const wxBrush &brush = wx->MacGetBackgroundBrush() ;
|
const wxBrush &brush = wx->MacGetBackgroundBrush() ;
|
||||||
if ( brush.Ok() )
|
if ( brush.Ok() )
|
||||||
{
|
{
|
||||||
|
|
||||||
wxDC::MacSetupBackgroundForCurrentPort( brush ) ;
|
wxDC::MacSetupBackgroundForCurrentPort( brush ) ;
|
||||||
*/
|
|
||||||
// this clipping is only needed for non HIView
|
|
||||||
|
|
||||||
RgnHandle clip = NewRgn() ;
|
RgnHandle clip = NewRgn() ;
|
||||||
int x = 0 , y = 0;
|
int x = 0 , y = 0;
|
||||||
@@ -524,7 +520,6 @@ pascal OSStatus wxMacSetupControlBackground( ControlRef iControl , SInt16 iMessa
|
|||||||
DisposeRgn( clip ) ;
|
DisposeRgn( clip ) ;
|
||||||
|
|
||||||
status = noErr ;
|
status = noErr ;
|
||||||
/*
|
|
||||||
}
|
}
|
||||||
else if ( wx->MacIsUserPane() )
|
else if ( wx->MacIsUserPane() )
|
||||||
{
|
{
|
||||||
@@ -532,7 +527,6 @@ pascal OSStatus wxMacSetupControlBackground( ControlRef iControl , SInt16 iMessa
|
|||||||
// setup of our parent ourselves
|
// setup of our parent ourselves
|
||||||
status = SetUpControlBackground( (ControlRef) wx->GetParent()->GetHandle() , iDepth , iIsColor ) ;
|
status = SetUpControlBackground( (ControlRef) wx->GetParent()->GetHandle() , iDepth , iIsColor ) ;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break ;
|
break ;
|
||||||
@@ -781,7 +775,7 @@ void wxWindowMac::MacPostControlCreate(const wxPoint& pos, const wxSize& size)
|
|||||||
#if !TARGET_API_MAC_OSX
|
#if !TARGET_API_MAC_OSX
|
||||||
// eventually we can fix some clipping issues be reactivating this hook
|
// eventually we can fix some clipping issues be reactivating this hook
|
||||||
//if ( m_macIsUserPane )
|
//if ( m_macIsUserPane )
|
||||||
// SetControlColorProc( *m_peer , wxMacSetupControlBackgroundUPP ) ;
|
// SetControlColorProc( m_peer->GetControlRef() , wxMacSetupControlBackgroundUPP ) ;
|
||||||
#endif
|
#endif
|
||||||
m_peer->SetTitle( wxStripMenuCodes(m_label) ) ;
|
m_peer->SetTitle( wxStripMenuCodes(m_label) ) ;
|
||||||
|
|
||||||
@@ -2040,11 +2034,13 @@ void wxWindowMac::WarpPointer (int x_pos, int y_pos)
|
|||||||
|
|
||||||
void wxWindowMac::OnEraseBackground(wxEraseEvent& event)
|
void wxWindowMac::OnEraseBackground(wxEraseEvent& event)
|
||||||
{
|
{
|
||||||
|
#if TARGET_API_MAC_OSX
|
||||||
if ( m_macBackgroundBrush.Ok() == false || m_macBackgroundBrush.GetStyle() == wxTRANSPARENT )
|
if ( m_macBackgroundBrush.Ok() == false || m_macBackgroundBrush.GetStyle() == wxTRANSPARENT )
|
||||||
{
|
{
|
||||||
event.Skip() ;
|
event.Skip() ;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
#endif
|
||||||
event.GetDC()->Clear() ;
|
event.GetDC()->Clear() ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user