]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/utils_osx.cpp
Refactor wxFileName existence checking code.
[wxWidgets.git] / src / osx / utils_osx.cpp
index 7e1b9c3b1485fb307e2088ba89bce55662465286..e1765e81d1dd8455cc432498003da0a6d58ffc33 100644 (file)
@@ -65,11 +65,45 @@ bool wxColourDisplay()
     return true;
 }
 
     return true;
 }
 
+
 #if wxOSX_USE_COCOA_OR_CARBON
 #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()
 {
 // 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;
 }
 
     return theDepth;
 }
 
@@ -98,7 +132,7 @@ bool wxLaunchDefaultApplication(const wxString& document, int flags)
     CFStringNormalize(cfMutableString,kCFStringNormalizationFormD);
     wxCFRef<CFURLRef> curl(CFURLCreateWithFileSystemPath(kCFAllocatorDefault, cfMutableString , kCFURLPOSIXPathStyle, false));
     OSStatus err = LSOpenCFURLRef( curl , NULL );
     CFStringNormalize(cfMutableString,kCFStringNormalizationFormD);
     wxCFRef<CFURLRef> curl(CFURLCreateWithFileSystemPath(kCFAllocatorDefault, cfMutableString , kCFURLPOSIXPathStyle, false));
     OSStatus err = LSOpenCFURLRef( curl , NULL );
-    
+
     if (err == noErr)
     {
         return true;
     if (err == noErr)
     {
         return true;