]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/helpwnd.cpp
recognize CP866 (bug 1497808)
[wxWidgets.git] / src / html / helpwnd.cpp
index 509dd8a2d5fbe9dd2c12539c8b02c9151a9ddd86..9215711601d458587735957dca4a8152ff1e1fdf 100644 (file)
     #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
@@ -93,7 +93,7 @@ class wxHtmlHelpHashData : public wxObject
     public:
         wxHtmlHelpHashData(int index, wxTreeItemId id) : wxObject()
             { m_Index = index; m_Id = id;}
-        ~wxHtmlHelpHashData() {}
+        virtual ~wxHtmlHelpHashData() {}
 
         int m_Index;
         wxTreeItemId m_Id;
@@ -104,53 +104,53 @@ class wxHtmlHelpHashData : public wxObject
 // 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