X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ca9eebc34612c8bc3cdb8530ea355caf3eff5df0..038809c2f657f03d8688d7a75ca416878dfa0de7:/src/osx/carbon/utilscocoa.mm?ds=sidebyside diff --git a/src/osx/carbon/utilscocoa.mm b/src/osx/carbon/utilscocoa.mm index 41bda29155..dc4248f3c7 100644 --- a/src/osx/carbon/utilscocoa.mm +++ b/src/osx/carbon/utilscocoa.mm @@ -1,10 +1,10 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: src/osx/carbon/utils.mm +// Name: src/osx/carbon/utilscocoa.mm // Purpose: various cocoa mixin utility functions // Author: Stefan Csomor // Modified by: // Created: 1998-01-01 -// RCS-ID: $Id: utilscocoa.mm 48805 2007-09-19 14:52:25Z SC $ +// RCS-ID: $Id$ // Copyright: (c) Stefan Csomor // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -355,7 +355,7 @@ WX_UIImage wxOSXGetUIImageFromCGImage( CGImageRef image ) wxBitmap wxOSXCreateSystemBitmap(const wxString& name, const wxString &client, const wxSize& size) { -#if 0 +#if 1 // unfortunately this only accesses images in the app bundle, not the system wide globals wxCFStringRef cfname(name); return wxBitmap( [[UIImage imageNamed:cfname.AsNSString()] CGImage] ); @@ -368,7 +368,7 @@ wxBitmap wxOSXCreateSystemBitmap(const wxString& name, const wxString &client, c #if wxOSX_USE_COCOA -wxBitmap wxOSXCreateSystemBitmap(const wxString& name, const wxString &client, const wxSize& size) +wxBitmap wxOSXCreateSystemBitmap(const wxString& name, const wxString &WXUNUSED(client), const wxSize& WXUNUSED(size)) { wxCFStringRef cfname(name); wxCFRef image( wxOSXCreateCGImageFromNSImage([NSImage imageNamed:cfname.AsNSString()]) ); @@ -408,19 +408,22 @@ WX_NSImage wxOSXGetNSImageFromCGImage( CGImageRef image ) CGImageRef wxOSXCreateCGImageFromNSImage( WX_NSImage nsimage ) { // based on http://www.mail-archive.com/cocoa-dev@lists.apple.com/msg18065.html - - NSSize imageSize = [nsimage size]; - CGColorSpaceRef genericRGB = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB); - CGContextRef context = CGBitmapContextCreate(NULL, imageSize.width, imageSize.height, 8, 0, genericRGB, kCGImageAlphaPremultipliedFirst); - NSGraphicsContext *nsGraphicsContext = [NSGraphicsContext graphicsContextWithGraphicsPort:context flipped:NO]; - [NSGraphicsContext saveGraphicsState]; - [NSGraphicsContext setCurrentContext:nsGraphicsContext]; - [[NSColor whiteColor] setFill]; - NSRectFill(NSMakeRect(0.0, 0.0, imageSize.width, imageSize.height)); - [nsimage drawAtPoint:NSZeroPoint fromRect:NSZeroRect operation:NSCompositeCopy fraction:1.0]; - [NSGraphicsContext setCurrentContext:nsGraphicsContext]; - CGImageRef image = CGBitmapContextCreateImage(context); - CFRelease(context); + + CGImageRef image = NULL; + if (nsimage != nil) + { + NSSize imageSize = [nsimage size]; + CGContextRef context = CGBitmapContextCreate(NULL, imageSize.width, imageSize.height, 8, 0, wxMacGetGenericRGBColorSpace(), kCGImageAlphaPremultipliedFirst); + NSGraphicsContext *nsGraphicsContext = [NSGraphicsContext graphicsContextWithGraphicsPort:context flipped:NO]; + [NSGraphicsContext saveGraphicsState]; + [NSGraphicsContext setCurrentContext:nsGraphicsContext]; + [[NSColor whiteColor] setFill]; + NSRectFill(NSMakeRect(0.0, 0.0, imageSize.width, imageSize.height)); + [nsimage drawAtPoint:NSZeroPoint fromRect:NSZeroRect operation:NSCompositeCopy fraction:1.0]; + [NSGraphicsContext setCurrentContext:nsGraphicsContext]; + image = CGBitmapContextCreateImage(context); + CFRelease(context); + } return image; } @@ -512,8 +515,11 @@ WX_NSCursor wxMacCocoaCreateStockCursor( int cursor_type ) case wxCURSOR_WATCH: case wxCURSOR_WAIT: - // should be displayed by the system when things are running - cursor = [[NSCursor arrowCursor] retain]; + // an arrow should be displayed by the system when things are running + // according to the HIG + // cursor = [[NSCursor arrowCursor] retain]; + // but for crossplatform compatibility we display a watch cursor + cursor = wxGetStockCursor(kwxCursorWatch); break; case wxCURSOR_IBEAM: