X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c5f0d1f9039558df37b506643d05d6cb5ebfd6fd..8749ce0a6ff3e88a343a31efa0c6f4fbb21f4f77:/src/common/utilscmn.cpp diff --git a/src/common/utilscmn.cpp b/src/common/utilscmn.cpp index abc3d00ecf..21895181cb 100644 --- a/src/common/utilscmn.cpp +++ b/src/common/utilscmn.cpp @@ -140,6 +140,15 @@ void wxDecToHex(int dec, wxChar *buf) buf[2] = 0; } +// Convert decimal integer to 2 characters +void wxDecToHex(int dec, char* ch1, char* ch2) +{ + int firstDigit = (int)(dec/16.0); + int secondDigit = (int)(dec - (firstDigit*16.0)); + (*ch1) = (char) hexArray[firstDigit]; + (*ch2) = (char) hexArray[secondDigit]; +} + // Convert decimal integer to 2-character hex string wxString wxDecToHex(int dec) { @@ -678,6 +687,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 +701,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 +797,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; @@ -807,7 +830,7 @@ bool wxLaunchDefaultBrowser(const wxString& urlOrig, int flags) wxLogDebug(wxT("ICStart error %d"), (int) err); return false; } -#else +#else // (non-Mac, non-MSW) #ifdef __UNIX__