adding 10.5 compatibility again

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76143 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2014-03-13 17:09:00 +00:00
parent 8fa2694395
commit ffeba70599
2 changed files with 38 additions and 15 deletions

View File

@@ -2250,20 +2250,37 @@ void wxMacCoreGraphicsContext::DrawIcon( const wxIcon &icon, wxDouble x, wxDoubl
if (m_composition == wxCOMPOSITION_DEST)
return;
#if wxOSX_USE_CARBON
CGContextSaveGState( m_cgContext );
CGContextTranslateCTM( m_cgContext,(CGFloat) x ,(CGFloat) (y + h) );
CGContextScaleCTM( m_cgContext, 1, -1 );
CGRect r = CGRectMake( (CGFloat) 0.0 , (CGFloat) 0.0 , (CGFloat) w , (CGFloat) h );
PlotIconRefInContext( m_cgContext , &r , kAlignNone , kTransformNone ,
NULL , kPlotIconRefNormalFlags , icon.GetHICON() );
CGContextRestoreGState( m_cgContext );
#elif wxOSX_USE_COCOA
CGRect r = CGRectMake( (CGFloat) x , (CGFloat) y , (CGFloat) w , (CGFloat) h );
const WX_NSImage nsImage = icon.GetNSImage();
// the carbon version must be used on 10.5, or if the SDK is 10.5
#if wxOSX_USE_CARBON || ( wxOSX_USE_COCOA && MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6 )
#if wxOSX_USE_COCOA
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
if ( UMAGetSystemVersion() < 0x1060 )
#endif
{
#endif // wxOSX_USE_COCOA
CGContextSaveGState( m_cgContext );
CGContextTranslateCTM( m_cgContext,(CGFloat) x ,(CGFloat) (y + h) );
CGContextScaleCTM( m_cgContext, 1, -1 );
CGRect r = CGRectMake( (CGFloat) 0.0 , (CGFloat) 0.0 , (CGFloat) w , (CGFloat) h );
PlotIconRefInContext( m_cgContext , &r , kAlignNone , kTransformNone ,
NULL , kPlotIconRefNormalFlags , icon.GetHICON() );
CGContextRestoreGState( m_cgContext );
#if wxOSX_USE_COCOA
}
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
else
#endif
#endif // wxOSX_USE_COCOA
#endif // wxOSX_USE_CARBON || ( wxOSX_USE_COCOA && MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6 )
#if wxOSX_USE_COCOA && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
{
CGRect r = CGRectMake( (CGFloat) x , (CGFloat) y , (CGFloat) w , (CGFloat) h );
const WX_NSImage nsImage = icon.GetNSImage();
CGImageRef cgImage = wxOSXGetCGImageFromNSImage( nsImage , &r, m_cgContext );
wxMacDrawCGImage( m_cgContext, &r, cgImage);
CGImageRef cgImage = wxOSXGetCGImageFromNSImage( nsImage , &r, m_cgContext );
wxMacDrawCGImage( m_cgContext, &r, cgImage);
}
#endif
CheckInvariants();

View File

@@ -456,10 +456,16 @@ WX_NSImage WXDLLIMPEXP_CORE wxOSXGetNSImageFromIconRef( WXHICON iconref )
CGImageRef WXDLLIMPEXP_CORE wxOSXGetCGImageFromNSImage( WX_NSImage nsimage, CGRect* r, CGContextRef cg)
{
NSRect nsRect = NSRectFromCGRect(*r);
return [nsimage CGImageForProposedRect:&nsRect
#if wxOSX_USE_COCOA && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
if ( UMAGetSystemVersion() >= 0x1060 )
{
NSRect nsRect = NSRectFromCGRect(*r);
return [nsimage CGImageForProposedRect:&nsRect
context:[NSGraphicsContext graphicsContextWithGraphicsPort:cg flipped:YES]
hints:nil];
}
#endif
return NULL;
}
CGContextRef WXDLLIMPEXP_CORE wxOSXCreateBitmapContextFromNSImage( WX_NSImage nsimage)