X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1f0c8f31f407ecfce909060464c0ea655221cdab..b5791cc7af207a74deb0bea60f99cd97429bcb8c:/src/osx/carbon/utilscocoa.mm diff --git a/src/osx/carbon/utilscocoa.mm b/src/osx/carbon/utilscocoa.mm index 07c34d5630..1617dd37f6 100644 --- a/src/osx/carbon/utilscocoa.mm +++ b/src/osx/carbon/utilscocoa.mm @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: src/mac/carbon/utils.mm +// Name: src/osx/carbon/utils.mm // Purpose: various cocoa mixin utility functions // Author: Stefan Csomor // Modified by: @@ -11,7 +11,11 @@ #include "wx/wxprec.h" +#if wxOSX_USE_COCOA_OR_CARBON #include +#else +#import +#endif #ifdef __WXMAC__ #include "wx/osx/private.h" @@ -19,12 +23,14 @@ #ifdef __WXMAC__ +#if wxOSX_USE_CARBON bool wxMacInitCocoa() { bool cocoaLoaded = NSApplicationLoad(); wxASSERT_MSG(cocoaLoaded,wxT("Couldn't load Cocoa in Carbon Environment")) ; return cocoaLoaded; } +#endif wxMacAutoreleasePool::wxMacAutoreleasePool() { @@ -38,15 +44,25 @@ wxMacAutoreleasePool::~wxMacAutoreleasePool() #endif -#ifdef __WXCOCOCA__ +#if wxOSX_USE_COCOA_OR_IPHONE -CGContextRef wxMacGetContextFromCurrentNSContext() +CGContextRef wxOSXGetContextFromCurrentNSContext() { CGContextRef context = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort]; return context; } +bool wxOSXLockFocus( WXWidget view) +{ + return [view lockFocusIfCanDraw]; +} + +void wxOSXUnlockFocus( WXWidget view) +{ + [view unlockFocus]; +} + #endif // ---------------------------------------------------------------------------- @@ -68,12 +84,14 @@ void wxMacCocoaRetain( void* obj ) [(NSObject*)obj retain]; } +#if wxOSX_USE_COCOA + // ---------------------------------------------------------------------------- // NSImage Utils // ---------------------------------------------------------------------------- // From "Cocoa Drawing Guide:Working with Images" -WX_NSImage CreateNSImageFromCGImage( CGImageRef image ) +WX_NSImage wxOSXCreateNSImageFromCGImage( CGImageRef image ) { NSRect imageRect = NSMakeRect(0.0, 0.0, 0.0, 0.0); @@ -90,6 +108,15 @@ WX_NSImage CreateNSImageFromCGImage( CGImageRef image ) CGContextDrawImage( imageContext, *(CGRect*)&imageRect, image ); [newImage unlockFocus]; + /* + // Create a bitmap rep from the image... + NSBitmapImageRep *bitmapRep = [[NSBitmapImageRep alloc] initWithCGImage:cgImage]; + // Create an NSImage and add the bitmap rep to it... + NSImage *image = [[NSImage alloc] init]; + [image addRepresentation:bitmapRep]; + [bitmapRep release]; + */ + [newImage autorelease]; return( newImage ); } @@ -97,8 +124,6 @@ WX_NSImage CreateNSImageFromCGImage( CGImageRef image ) // NSCursor Utils // ---------------------------------------------------------------------------- -#if wxMAC_USE_COCOA - // copied from cursor.mm static NSCursor* wxGetStockCursor( short sIndex ) @@ -209,7 +234,7 @@ WX_NSCursor wxMacCocoaCreateStockCursor( int cursor_type ) case wxCURSOR_HAND: cursor = [[NSCursor pointingHandCursor] retain]; break; - + case wxCURSOR_BULLSEYE: cursor = wxGetStockCursor(kwxCursorBullseye); break; @@ -254,6 +279,14 @@ WX_NSCursor wxMacCocoaCreateStockCursor( int cursor_type ) cursor = wxGetStockCursor(kwxCursorRoller); break; + case wxCURSOR_OPEN_HAND: + cursor = [[NSCursor openHandCursor] retain]; + break; + + case wxCURSOR_CLOSED_HAND: + cursor = [[NSCursor closedHandCursor] retain]; + break; + case wxCURSOR_CHAR: case wxCURSOR_ARROW: case wxCURSOR_LEFT_BUTTON: @@ -278,7 +311,7 @@ WX_NSCursor wxMacCocoaCreateCursorFromCGImage( CGImageRef cgImageRef, float hot firstTime = NO; } - NSImage *nsImage = CreateNSImageFromCGImage( cgImageRef ); + NSImage *nsImage = wxOSXCreateNSImageFromCGImage( cgImageRef ); NSCursor *cursor = [[NSCursor alloc] initWithImage:nsImage hotSpot:NSMakePoint( hotSpotX, hotSpotY )]; [nsImage release]; @@ -302,3 +335,4 @@ void wxMacCocoaShowCursor() } #endif +