X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b5b208a1796ecf1b9ab267d200705b4f3b4d10e3..39d0e65b6224f1307ede8a965eee122e707fd57e:/src/osx/utils_osx.cpp diff --git a/src/osx/utils_osx.cpp b/src/osx/utils_osx.cpp index 7e1b9c3b14..7eb431ad86 100644 --- a/src/osx/utils_osx.cpp +++ b/src/osx/utils_osx.cpp @@ -35,21 +35,13 @@ // #include "MoreFilesX.h" -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 - #include -#endif +#include #include "wx/osx/private.h" #include "wx/osx/private/timer.h" #include "wx/evtloop.h" -#if defined(__MWERKS__) && wxUSE_UNICODE -#if __MWERKS__ < 0x4100 - #include -#endif -#endif - // Check whether this window wants to process messages, e.g. Stop button // in long calculations. bool wxCheckForInterrupt(wxWindow *WXUNUSED(wnd)) @@ -65,11 +57,46 @@ bool wxColourDisplay() 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); + CGDisplayModeRelease(currentMode); + } + else +#endif + { +#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 + theDepth = (int) CGDisplayBitsPerPixel(CGMainDisplayID()); +#endif + } return theDepth; } @@ -98,7 +125,7 @@ bool wxLaunchDefaultApplication(const wxString& document, int flags) CFStringNormalize(cfMutableString,kCFStringNormalizationFormD); wxCFRef curl(CFURLCreateWithFileSystemPath(kCFAllocatorDefault, cfMutableString , kCFURLPOSIXPathStyle, false)); OSStatus err = LSOpenCFURLRef( curl , NULL ); - + if (err == noErr) { return true;