#include "wx/menu.h"
#include "wx/settings.h"
#include "wx/msgdlg.h"
+ #include "wx/textctrl.h"
+ #include "wx/toolbar.h"
+ #include "wx/choicdlg.h"
+ #include "wx/filedlg.h"
#endif // WXPRECOMP
#include "wx/html/helpfrm.h"
#include "wx/html/helpdlg.h"
#include "wx/html/helpctrl.h"
-#include "wx/textctrl.h"
#include "wx/notebook.h"
#include "wx/imaglist.h"
#include "wx/treectrl.h"
#include "wx/html/htmlwin.h"
#include "wx/busyinfo.h"
#include "wx/progdlg.h"
-#include "wx/toolbar.h"
#include "wx/fontenum.h"
-#include "wx/filedlg.h"
#include "wx/artprov.h"
#include "wx/spinctrl.h"
-#include "wx/choicdlg.h"
// what is considered "small index"?
#define INDEX_IS_SMALL 100
public:
wxHtmlHelpHashData(int index, wxTreeItemId id) : wxObject()
{ m_Index = index; m_Id = id;}
- ~wxHtmlHelpHashData() {}
+ virtual ~wxHtmlHelpHashData() {}
int m_Index;
wxTreeItemId m_Id;
// wxHtmlHelpHtmlWindow (private)
//--------------------------------------------------------------------------
-DEFINE_EVENT_TYPE(wxEVT_COMMAND_HTMLWINDOW_URL_CLICKED)
-IMPLEMENT_DYNAMIC_CLASS(wxHtmlWindowEvent, wxNotifyEvent)
class wxHtmlHelpHtmlWindow : public wxHtmlWindow
{
- public:
- wxHtmlHelpHtmlWindow(wxHtmlHelpWindow *win, wxWindow *parent)
- : wxHtmlWindow(parent), m_Window(win)
- {
- SetStandardFonts();
- }
+public:
+ wxHtmlHelpHtmlWindow(wxHtmlHelpWindow *win, wxWindow *parent)
+ : wxHtmlWindow(parent), m_Window(win)
+ {
+ SetStandardFonts();
+ }
- virtual void OnLinkClicked(const wxHtmlLinkInfo& link)
- {
- wxHtmlWindowEvent event(wxEVT_COMMAND_HTMLWINDOW_URL_CLICKED, GetId());
- event.SetURL(link.GetHref());
- if (!ProcessEvent(event))
- {
- wxHtmlWindow::OnLinkClicked(link);
- }
- const wxMouseEvent *e = link.GetEvent();
- if (e == NULL || e->LeftUp())
- m_Window->NotifyPageChanged();
- }
+ void OnLink(wxHtmlLinkEvent& ev)
+ {
+ const wxMouseEvent *e = ev.GetLinkInfo().GetEvent();
+ if (e == NULL || e->LeftUp())
+ m_Window->NotifyPageChanged();
- // Returns full location with anchor (helper)
- static wxString GetOpenedPageWithAnchor(wxHtmlWindow *win)
- {
- if(!win)
- return wxEmptyString;
+ // skip the event so that normal processing (i.e. following the link)
+ // is done:
+ ev.Skip();
+ }
- wxString an = win->GetOpenedAnchor();
- wxString pg = win->GetOpenedPage();
- if(!an.empty())
- {
- pg << wxT("#");
- pg << an;
- }
- return pg;
+ // Returns full location with anchor (helper)
+ static wxString GetOpenedPageWithAnchor(wxHtmlWindow *win)
+ {
+ if(!win)
+ return wxEmptyString;
+
+ wxString an = win->GetOpenedAnchor();
+ wxString pg = win->GetOpenedPage();
+ if(!an.empty())
+ {
+ pg << wxT("#") << an;
}
+ return pg;
+ }
- private:
- wxHtmlHelpWindow *m_Window;
+private:
+ wxHtmlHelpWindow *m_Window;
DECLARE_NO_COPY_CLASS(wxHtmlHelpHtmlWindow)
+ DECLARE_EVENT_TABLE()
};
+BEGIN_EVENT_TABLE(wxHtmlHelpHtmlWindow, wxHtmlWindow)
+ EVT_HTML_LINK_CLICKED(wxID_ANY, wxHtmlHelpHtmlWindow::OnLink)
+END_EVENT_TABLE()
+
//---------------------------------------------------------------------------
// wxHtmlHelpWindow::m_mergedIndex