X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b76dfb0481ddce436e560993c6bd89ef292bed4..a70d268a1b43dc8ef2025b2beaeb5a595ba173fc:/src/osx/utils_osx.cpp diff --git a/src/osx/utils_osx.cpp b/src/osx/utils_osx.cpp index 20d791b1a7..251332d88c 100644 --- a/src/osx/utils_osx.cpp +++ b/src/osx/utils_osx.cpp @@ -4,7 +4,7 @@ // 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 ///////////////////////////////////////////////////////////////////////////// @@ -61,6 +61,7 @@ bool wxCheckForInterrupt(wxWindow *WXUNUSED(wnd)) // Return true if we have a colour display bool wxColourDisplay() { + // always the case on OS X return true; } @@ -93,12 +94,20 @@ bool wxLaunchDefaultApplication(const wxString& document, int flags) { wxUnusedVar(flags); - static const char * const OPEN_CMD = "/usr/bin/open"; - if ( wxFileExists(OPEN_CMD) && - wxExecute(wxString(OPEN_CMD) + " " + document) ) - return true; + wxCFRef cfMutableString(CFStringCreateMutableCopy(NULL, 0, wxCFStringRef(document))); + CFStringNormalize(cfMutableString,kCFStringNormalizationFormD); + wxCFRef curl(CFURLCreateWithFileSystemPath(kCFAllocatorDefault, cfMutableString , kCFURLPOSIXPathStyle, false)); + OSStatus err = LSOpenCFURLRef( curl , NULL ); - return false; + if (err == noErr) + { + return true; + } + else + { + wxLogDebug(wxT("Default Application Launch error %d"), (int) err); + return false; + } } // ---------------------------------------------------------------------------- @@ -154,7 +163,6 @@ wxEventLoopBase* wxGUIAppTraits::CreateEventLoop() return new wxEventLoop; } -wxNonOwnedWindow *wxFindWindowFromWXWindow(WXWindow inWindowRef); wxWindow* wxFindWindowAtPoint(wxWindow* win, const wxPoint& pt); wxWindow* wxFindWindowAtPoint(const wxPoint& pt) @@ -166,7 +174,7 @@ wxWindow* wxFindWindowAtPoint(const wxPoint& pt) if ( FindWindow( screenPoint , &windowRef ) ) { - wxNonOwnedWindow *nonOwned = wxFindWindowFromWXWindow( windowRef ); + wxNonOwnedWindow *nonOwned = wxNonOwnedWindow::GetFromWXWindow( windowRef ); if ( nonOwned ) return wxFindWindowAtPoint( nonOwned , pt );