Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/ODE/src/lib/util/filesys/net_link.cc @ 10646

Last change on this file since 10646 was 9406, checked in by bensch, 18 years ago

orxonox/trunk: merged the proxy back

merged with commandsvn merge -r9346:HEAD https://svn.orxonox.net/orxonox/branches/proxy .

no conflicts

File size: 1.9 KB
Line 
1/*
2   orxonox - the future of 3D-vertical-scrollers
3
4   Copyright (C) 2004 orx
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 2, or (at your option)
9   any later version.
10
11### File Specific:
12   main-programmer: Benjamin Grauer
13   co-programmer: ...
14*/
15
16#include "net_link.h"
17#include "debug.h"
18
19
20#ifdef __OSX__
21#include <ApplicationServices/ApplicationServices.h>
22#elif defined __WIN32__
23//#include <shellapi.h>
24#endif
25
26
27NetLink::NetLink(const std::string& linkName)
28{
29  this->_link = linkName;
30}
31
32
33void NetLink::openInBrowser() const
34{
35  SDL_CreateThread(NetLink::openupInBrowser, (void*)&this->_link);
36}
37
38OrxThread::Mutex NetLink::_mutex;
39std::string NetLink::_defaultBrowser = "firefox";
40std::list<std::string> NetLink::_browserList = NetLink::buildBrowserList();
41
42
43
44
45int NetLink::openupInBrowser(void* url)
46{
47  OrxThread::MutexLock lock(&NetLink::_mutex);
48
49  std::string URL = *(std::string*)url;
50#ifdef __linux__
51  system ((std::string(NetLink::defaultBrowser()) + " " + URL).c_str());
52
53#elif defined __OSX__
54  CFURLRef url_handle = CFURLCreateWithBytes (NULL, (UInt8 *)URL.c_str(), URL.size(),
55                                              kCFStringEncodingASCII, NULL);
56  LSOpenCFURLRef (url_handle, NULL);
57  CFRelease (url_handle);
58
59#elif defined __WIN32__
60  /*  ShellExecute(GetActiveWindow(),
61               "open", URL.c_str(), NULL, NULL, SW_SHOWNORMAL);
62}*/
63#endif
64  PRINTF(3)("loaded external webpage %s\n", URL.c_str());
65
66  return 0;
67}
68
69void NetLink::setDefaultBrowser(const std::string& browserName)
70{
71  OrxThread::MutexLock lock(&NetLink::_mutex);
72  NetLink::_defaultBrowser = browserName;
73}
74
75std::list<std::string> NetLink::buildBrowserList()
76{
77  std::list<std::string> browserList;
78  browserList.push_back("firefox");
79  browserList.push_back("mozilla");
80  browserList.push_back("konqueror");
81
82  return  browserList;
83}
Note: See TracBrowser for help on using the repository browser.