// event handlers (these functions should _not_ be virtual)
void OnQuit(wxCommandEvent& event);
void OnPageOpen(wxCommandEvent& event);
- void OnDefaultBrowser(wxCommandEvent& event);
+ void OnDefaultLocalBrowser(wxCommandEvent& event);
+ void OnDefaultWebBrowser(wxCommandEvent& event);
void OnBack(wxCommandEvent& event);
void OnForward(wxCommandEvent& event);
void OnProcessor(wxCommandEvent& event);
{
// menu items
ID_PageOpen = wxID_HIGHEST,
- ID_DefaultBrowser,
+ ID_DefaultLocalBrowser,
+ ID_DefaultWebBrowser,
ID_Back,
ID_Forward,
ID_Processor
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(wxID_EXIT, MyFrame::OnQuit)
EVT_MENU(ID_PageOpen, MyFrame::OnPageOpen)
- EVT_MENU(ID_DefaultBrowser, MyFrame::OnDefaultBrowser)
+ EVT_MENU(ID_DefaultLocalBrowser, MyFrame::OnDefaultLocalBrowser)
+ EVT_MENU(ID_DefaultWebBrowser, MyFrame::OnDefaultWebBrowser)
EVT_MENU(ID_Back, MyFrame::OnBack)
EVT_MENU(ID_Forward, MyFrame::OnForward)
EVT_MENU(ID_Processor, MyFrame::OnProcessor)
wxMenu *menuNav = new wxMenu;
menuFile->Append(ID_PageOpen, _("&Open HTML page..."));
- menuFile->Append(ID_DefaultBrowser, _("&Open current page with default browser"));
+ menuFile->Append(ID_DefaultLocalBrowser, _("&Open current page with default browser"));
+ menuFile->Append(ID_DefaultWebBrowser, _("Open a &web page with default browser"));
menuFile->AppendSeparator();
menuFile->Append(ID_Processor, _("&Remove bold attribute"),
wxEmptyString, wxITEM_CHECK);
#endif // wxUSE_FILEDLG
}
-void MyFrame::OnDefaultBrowser(wxCommandEvent& WXUNUSED(event))
+void MyFrame::OnDefaultLocalBrowser(wxCommandEvent& WXUNUSED(event))
{
wxString page = m_Html->GetOpenedPage();
if (!page.empty())
}
}
+void MyFrame::OnDefaultWebBrowser(wxCommandEvent& WXUNUSED(event))
+{
+ wxString page = m_Html->GetOpenedPage();
+ if (!page.empty())
+ {
+ wxLaunchDefaultBrowser(wxT("http://www.google.com"));
+ }
+}
+
void MyFrame::OnBack(wxCommandEvent& WXUNUSED(event))
{
if (!m_Html->HistoryBack())
// (non-Mac, non-MSW)
#ifdef __UNIX__
- if (wxTheApp->GetTraits()->GetDesktopEnvironment() == wxT("GNOME"))
+
+ wxString desktop = wxTheApp->GetTraits()->GetDesktopEnvironment();
+
+ // GNOME and KDE desktops have some applications which should be always installed
+ // together with their main parts, which give us the
+ if (desktop == wxT("GNOME"))
{
wxArrayString errors;
wxArrayString output;
- long res = wxExecute( wxT("gconftool-2 --get /desktop/gnome/applications/browser/exec"), output, errors, wxEXEC_NODISABLE );
+
+ // gconf will tell us the path of the application to use as browser
+ long res = wxExecute( wxT("gconftool-2 --get /desktop/gnome/applications/browser/exec"),
+ output, errors, wxEXEC_NODISABLE );
if (res >= 0 && errors.GetCount() == 0)
{
wxString cmd = output[0];
return true;
}
}
+ else if (desktop == wxT("KDE"))
+ {
+ // kfmclient directly opens the given URL
+ if (wxExecute(wxT("kfmclient openURL ") + url))
+ return true;
+ }
#endif
bool ok = false;