]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/utilscmn.cpp
mingw32 doesn't define _tsystem so provide one ourselves (bug 1726904)
[wxWidgets.git] / src / common / utilscmn.cpp
index abc3d00ecfef9d2cb36e8b7d4b5a57c43ac64db4..8a0dfa3b2f02c2e91ba54a1917e8523f7cb6eb2a 100644 (file)
@@ -678,6 +678,11 @@ wxRegisterId (long id)
 // Launch default browser
 // ----------------------------------------------------------------------------
 
+#ifdef __WXCOCOA__
+// Private method in Objective-C++ source file.
+bool wxCocoaLaunchDefaultBrowser(const wxString& url, int flags);
+#endif
+
 bool wxLaunchDefaultBrowser(const wxString& urlOrig, int flags)
 {
     wxUnusedVar(flags);
@@ -687,7 +692,12 @@ bool wxLaunchDefaultBrowser(const wxString& urlOrig, int flags)
     wxString url(urlOrig);
     wxURI uri(url);
     if ( !uri.HasScheme() )
-        url.Prepend(wxT("http://"));
+    {
+        if (wxFileExists(urlOrig))
+            url.Prepend( wxT("file://") );
+        else
+            url.Prepend(wxT("http://"));
+    }
 
 
 #if defined(__WXMSW__)
@@ -778,6 +788,10 @@ bool wxLaunchDefaultBrowser(const wxString& urlOrig, int flags)
 #endif // __WXDEBUG__
         return true;
     }
+#elif defined(__WXCOCOA__)
+    // NOTE: We need to call the real implementation from src/cocoa/utils.mm
+    // because the code must use Objective-C features.
+    return wxCocoaLaunchDefaultBrowser(url, flags);
 #elif defined(__WXMAC__)
     OSStatus err;
     ICInstance inst;