]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/utilscmn.cpp
added wxDebugContext::SetShutdownNotifyFunction() (patch 1887210)
[wxWidgets.git] / src / common / utilscmn.cpp
index c65b29d48a7acc9566f23b3a097286e2aee46a20..df728c2228cd5cbd36539d3ea753e8d7b59de42a 100644 (file)
     #include <shellapi.h> // needed for SHELLEXECUTEINFO
 #endif
 
+#if wxUSE_GUI && defined(__WXGTK__)
+    #include <gtk/gtk.h>    // for GTK_XXX_VERSION constants
+#endif
+
 #if wxUSE_BASE
 
 // ----------------------------------------------------------------------------
@@ -1077,6 +1081,20 @@ bool wxLaunchDefaultBrowser(const wxString& urlOrig, int flags)
 
 #ifdef __UNIX__
 
+    // Our best best is to use xdg-open from freedesktop.org cross-desktop
+    // compatibility suite xdg-utils
+    // (see http://portland.freedesktop.org/wiki/) -- this is installed on
+    // most modern distributions and may be tweaked by them to handle
+    // distribution specifics. Only if that fails, try to find the right
+    // browser ourselves.
+    wxString path, xdg_open;
+    if ( wxGetEnv("PATH", &path) &&
+         wxFindFileInPath(&xdg_open, path, "xdg-open") )
+    {
+        if ( wxExecute(xdg_open + " " + url) )
+            return true;
+    }
+
     wxString desktop = wxTheApp->GetTraits()->GetDesktopEnvironment();
 
     // GNOME and KDE desktops have some applications which should be always installed
@@ -1133,11 +1151,11 @@ bool wxLaunchDefaultBrowser(const wxString& urlOrig, int flags)
         return ok;
 
     // no file type for HTML extension
-    wxLogError(_T("No default application configured for HTML files."));
+    wxLogError(_("No default application configured for HTML files."));
 
 #endif // !wxUSE_MIMETYPE && !__WXMSW__
 
-    wxLogSysError(_T("Failed to open URL \"%s\" in default browser."),
+    wxLogSysError(_("Failed to open URL \"%s\" in default browser."),
                   url.c_str());
 
     return false;
@@ -1392,7 +1410,10 @@ void wxInfoMessageBox(wxWindow* parent)
                wxPlatformInfo::Get().GetToolkitMajorVersion(),
                wxPlatformInfo::Get().GetToolkitMinorVersion(),
 #ifdef __WXGTK__
-               wxString::Format(_T("\nThe compile-time GTK+ version is %d.%d.%d."), GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION).c_str()
+               wxString::Format("\nThe compile-time GTK+ version is %d.%d.%d.",
+                                GTK_MAJOR_VERSION,
+                                GTK_MINOR_VERSION,
+                                GTK_MICRO_VERSION).c_str()
 #else
                wxEmptyString
 #endif