]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/utilscmn.cpp
Rework the wxCusor ctor taking wx stock number to provide as many cursors as
[wxWidgets.git] / src / common / utilscmn.cpp
index 0b2f8a28d3da64b22bc1ded6bf77555444168337..21895181cb9d43ba640d1a2f30f6e3eaa82d5863 100644 (file)
@@ -140,6 +140,15 @@ void wxDecToHex(int dec, wxChar *buf)
     buf[2] = 0;
 }
 
     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)
 {
 // 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);
 }
 
     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
 // ----------------------------------------------------------------------------
 
 // ----------------------------------------------------------------------------
 // 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);
 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() )
     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__)
 
 
 #if defined(__WXMSW__)
@@ -734,6 +797,10 @@ bool wxLaunchDefaultBrowser(const wxString& urlOrig, int flags)
 #endif // __WXDEBUG__
         return true;
     }
 #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;
 #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;
     }
         wxLogDebug(wxT("ICStart error %d"), (int) err);
         return false;
     }
-#else 
+#else
     // (non-Mac, non-MSW)
 
 #ifdef __UNIX__
     // (non-Mac, non-MSW)
 
 #ifdef __UNIX__
@@ -834,50 +901,6 @@ bool wxLaunchDefaultBrowser(const wxString& urlOrig, int flags)
     return false;
 }
 
     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
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // Menu accelerators related functions
 // ----------------------------------------------------------------------------