]> git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/url.cpp
Merge commit '020d0244e4239b21dc804d630edff926386ea34f' into master-merge
[xonotic/netradiant.git] / radiant / url.cpp
index 527643e7cd9ffd61fbc0ab795adfe36efdf17063..f49cb88664623315c2b08c51e9255d8e5f1fdd94 100644 (file)
@@ -1,66 +1,62 @@
 /*
-Copyright (C) 1999-2006 Id Software, Inc. and contributors.
-For a list of contributors, see the accompanying CONTRIBUTORS file.
+   Copyright (C) 1999-2006 Id Software, Inc. and contributors.
+   For a list of contributors, see the accompanying CONTRIBUTORS file.
 
-This file is part of GtkRadiant.
+   This file is part of GtkRadiant.
 
-GtkRadiant is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+   GtkRadiant is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
 
-GtkRadiant is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   GtkRadiant is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-You should have received a copy of the GNU General Public License
-along with GtkRadiant; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-*/
+   You should have received a copy of the GNU General Public License
+   along with GtkRadiant; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
 
 #include "url.h"
+#include "globaldefs.h"
 
 #include "mainframe.h"
 #include "gtkutil/messagebox.h"
 
-#ifdef WIN32
+#if GDEF_OS_WINDOWS
+#include <gtk/gtk.h>
 #include <gdk/gdkwin32.h>
 #include <shellapi.h>
-bool open_url(const char* url)
-{
-  return ShellExecute( (HWND)GDK_WINDOW_HWND (GTK_WIDGET(MainFrame_getWindow())->window), "open", url, 0, 0, SW_SHOW ) > (HINSTANCE)32;
+bool open_url( const char* url ){
+       return ShellExecute( (HWND)GDK_WINDOW_HWND( gtk_widget_get_window( MainFrame_getWindow() ) ), "open", url, 0, 0, SW_SHOW ) > (HINSTANCE)32;
 }
 #endif
 
-#ifdef __linux__
+#if GDEF_OS_LINUX || GDEF_OS_BSD
 #include <stdlib.h>
-bool open_url(const char* url)
-{
-  // \todo FIXME: the way we open URLs on *nix should be improved. A script is good (see how I do on RTCW)
-  char command[2*PATH_MAX];
-  snprintf (command, sizeof(command), 
-            "netscape -remote \"openURL(%s,new-window)\" || netscape \"%s\" &", url, url);
-  return system(command) == 0;
+bool open_url( const char* url ){
+       char command[2 * PATH_MAX];
+       snprintf( command, sizeof( command ),
+                         "xdg-open \"%s\" &", url );
+       return system( command ) == 0;
 }
 #endif
 
-#ifdef __APPLE__
+#if GDEF_OS_MACOS
 #include <stdlib.h>
-bool open_url(const char* url)
-{
-  char command[2*PATH_MAX];
-  snprintf (command, sizeof(command), "open \"%s\" &", url);
-  return system(command) == 0;
+bool open_url( const char* url ){
+       char command[2 * PATH_MAX];
+       snprintf( command, sizeof( command ), "open \"%s\" &", url );
+       return system( command ) == 0;
 }
 #endif
 
-void OpenURL(const char *url)
-{
-  // let's put a little comment
-  globalOutputStream() << "OpenURL: " << url << "\n";
-  if(!open_url(url))
-  {
-    gtk_MessageBox(GTK_WIDGET(MainFrame_getWindow()), "Failed to launch browser!");
-  }
+void OpenURL( const char *url ){
+       // let's put a little comment
+       globalOutputStream() << "OpenURL: " << url << "\n";
+       if ( !open_url( url ) ) {
+               ui::alert( MainFrame_getWindow(), "Failed to launch browser!" );
+       }
 }