// Author: Stefan Csomor
// Modified by:
// Created: 1998-01-01
-// RCS-ID: $Id: utils.cpp 54886 2008-07-31 13:02:53Z SC $
+// RCS-ID: $Id$
// Copyright: (c) Stefan Csomor
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// Return true if we have a colour display
bool wxColourDisplay()
{
- // always the case on OSX
+ // always the case on OS X
return true;
}
+
#if wxOSX_USE_COCOA_OR_CARBON
+
+#if (MAC_OS_X_VERSION_MAX_ALLOWED >= 1070) && (MAC_OS_X_VERSION_MIN_REQUIRED < 1060)
+// bring back declaration so that we can support deployment targets < 10_6
+CG_EXTERN size_t CGDisplayBitsPerPixel(CGDirectDisplayID display)
+CG_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_6,
+ __IPHONE_NA, __IPHONE_NA);
+#endif
+
// Returns depth of screen
int wxDisplayDepth()
{
- int theDepth = (int) CGDisplayBitsPerPixel(CGMainDisplayID());
+ int theDepth = 0;
+
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060
+ if ( UMAGetSystemVersion() >= 0x1060 )
+ {
+ CGDisplayModeRef currentMode = CGDisplayCopyDisplayMode(kCGDirectMainDisplay);
+ CFStringRef encoding = CGDisplayModeCopyPixelEncoding(currentMode);
+
+ if(CFStringCompare(encoding, CFSTR(IO32BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo)
+ theDepth = 32;
+ else if(CFStringCompare(encoding, CFSTR(IO16BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo)
+ theDepth = 16;
+ else if(CFStringCompare(encoding, CFSTR(IO8BitIndexedPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo)
+ theDepth = 8;
+ else
+ theDepth = 32; // some reasonable default
+
+ CFRelease(encoding);
+ }
+ else
+#endif
+ {
+#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
+ theDepth = (int) CGDisplayBitsPerPixel(CGMainDisplayID());
+#endif
+ }
return theDepth;
}
CFStringNormalize(cfMutableString,kCFStringNormalizationFormD);
wxCFRef<CFURLRef> curl(CFURLCreateWithFileSystemPath(kCFAllocatorDefault, cfMutableString , kCFURLPOSIXPathStyle, false));
OSStatus err = LSOpenCFURLRef( curl , NULL );
-
+
if (err == noErr)
{
return true;