X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8bdc8a9c98bde50d25e6ecc27dd25ca147498cc9..69659fd770f615210efac4b4fa741b3ad6223616:/src/common/utilscmn.cpp diff --git a/src/common/utilscmn.cpp b/src/common/utilscmn.cpp index 0b2f8a28d3..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) { @@ -630,10 +639,59 @@ long wxExecute(const wxString& command, return wxDoExecuteWithCapture(command, output, &error, flags); } +// ---------------------------------------------------------------------------- +// wxApp::Yield() wrappers for backwards compatibility +// ---------------------------------------------------------------------------- + +bool wxYield() +{ + return wxTheApp && wxTheApp->Yield(); +} + +bool wxYieldIfNeeded() +{ + return wxTheApp && wxTheApp->Yield(true); +} + +// Id generation +static long wxCurrentId = 100; + +long wxNewId() +{ + // skip the part of IDs space that contains hard-coded values: + if (wxCurrentId == wxID_LOWEST) + wxCurrentId = wxID_HIGHEST + 1; + + return wxCurrentId++; +} + +long +wxGetCurrentId(void) { return wxCurrentId; } + +void +wxRegisterId (long id) +{ + if (id >= wxCurrentId) + wxCurrentId = id + 1; +} + +#endif // wxUSE_BASE + +// ============================================================================ +// GUI-only functions from now on +// ============================================================================ + +#if wxUSE_GUI + // ---------------------------------------------------------------------------- // 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); @@ -643,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__) @@ -734,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; @@ -763,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__ @@ -834,50 +901,6 @@ bool wxLaunchDefaultBrowser(const wxString& urlOrig, int flags) return false; } -// ---------------------------------------------------------------------------- -// wxApp::Yield() wrappers for backwards compatibility -// ---------------------------------------------------------------------------- - -bool wxYield() -{ - return wxTheApp && wxTheApp->Yield(); -} - -bool wxYieldIfNeeded() -{ - return wxTheApp && wxTheApp->Yield(true); -} - -// Id generation -static long wxCurrentId = 100; - -long wxNewId() -{ - // skip the part of IDs space that contains hard-coded values: - if (wxCurrentId == wxID_LOWEST) - wxCurrentId = wxID_HIGHEST + 1; - - return wxCurrentId++; -} - -long -wxGetCurrentId(void) { return wxCurrentId; } - -void -wxRegisterId (long id) -{ - if (id >= wxCurrentId) - wxCurrentId = id + 1; -} - -#endif // wxUSE_BASE - -// ============================================================================ -// GUI-only functions from now on -// ============================================================================ - -#if wxUSE_GUI - // ---------------------------------------------------------------------------- // Menu accelerators related functions // ----------------------------------------------------------------------------