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:
@@ -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 )
|
||||
|
||||
CGImageRef cgImage = wxOSXGetCGImageFromNSImage( nsImage , &r, m_cgContext );
|
||||
wxMacDrawCGImage( m_cgContext, &r, cgImage);
|
||||
#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);
|
||||
}
|
||||
#endif
|
||||
|
||||
CheckInvariants();
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user