]> git.saurik.com Git - wxWidgets.git/commitdiff
switching to LaunchServices implementation, fixes #11508
authorStefan Csomor <csomor@advancedconcepts.ch>
Mon, 18 Jan 2010 10:56:17 +0000 (10:56 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Mon, 18 Jan 2010 10:56:17 +0000 (10:56 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63181 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/osx/utils_osx.cpp

index 20d791b1a7373967f6af31d6d7f1c1f2873d062d..bd165782c5e6319728c3a5a1a3cfdc0b0eafdba4 100644 (file)
@@ -93,12 +93,20 @@ bool wxLaunchDefaultApplication(const wxString& document, int flags)
 {
     wxUnusedVar(flags);
 
 {
     wxUnusedVar(flags);
 
-    static const char * const OPEN_CMD = "/usr/bin/open";
-    if ( wxFileExists(OPEN_CMD) &&
-            wxExecute(wxString(OPEN_CMD) + " " + document) )
+    wxCFRef<CFMutableStringRef> cfMutableString(CFStringCreateMutableCopy(NULL, 0, wxCFStringRef(document)));
+    CFStringNormalize(cfMutableString,kCFStringNormalizationFormD);
+    wxCFRef<CFURLRef> curl(CFURLCreateWithFileSystemPath(kCFAllocatorDefault, cfMutableString , kCFURLPOSIXPathStyle, false));
+    OSStatus err = LSOpenCFURLRef( curl , NULL );
+    
+    if (err == noErr)
+    {
         return true;
         return true;
-
-    return false;
+    }
+    else
+    {
+        wxLogDebug(wxT("Default Application Launch error %d"), (int) err);
+        return false;
+    }
 }
 
 // ----------------------------------------------------------------------------
 }
 
 // ----------------------------------------------------------------------------