+class WXDLLIMPEXP_FWD_HTML wxHtmlCellEvent;
+
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_HTML, wxEVT_HTML_CELL_CLICKED, wxHtmlCellEvent );
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_HTML, wxEVT_HTML_CELL_HOVER, wxHtmlCellEvent );
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_HTML, wxEVT_HTML_LINK_CLICKED, wxHtmlLinkEvent );
+
+
+/*!
+ * Html cell window event
+ */
+
+class WXDLLIMPEXP_HTML wxHtmlCellEvent : public wxCommandEvent
+{
+public:
+ wxHtmlCellEvent() {}
+ wxHtmlCellEvent(wxEventType commandType, int id,
+ wxHtmlCell *cell, const wxPoint &pt,
+ const wxMouseEvent &ev)
+ : wxCommandEvent(commandType, id)
+ {
+ m_cell = cell;
+ m_pt = pt;
+ m_mouseEvent = ev;
+ m_bLinkWasClicked = false;
+ }
+
+ wxHtmlCell* GetCell() const { return m_cell; }
+ wxPoint GetPoint() const { return m_pt; }
+ wxMouseEvent GetMouseEvent() const { return m_mouseEvent; }
+
+ void SetLinkClicked(bool linkclicked) { m_bLinkWasClicked=linkclicked; }
+ bool GetLinkClicked() const { return m_bLinkWasClicked; }
+
+ // default copy ctor, assignment operator and dtor are ok
+ virtual wxEvent *Clone() const { return new wxHtmlCellEvent(*this); }
+
+private:
+ wxHtmlCell *m_cell;
+ wxMouseEvent m_mouseEvent;
+ wxPoint m_pt;
+
+ bool m_bLinkWasClicked;
+
+ DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxHtmlCellEvent)
+};
+
+
+
+/*!
+ * Html link event
+ */
+
+class WXDLLIMPEXP_HTML wxHtmlLinkEvent : public wxCommandEvent
+{
+public:
+ wxHtmlLinkEvent() {}
+ wxHtmlLinkEvent(int id, const wxHtmlLinkInfo &linkinfo)
+ : wxCommandEvent(wxEVT_HTML_LINK_CLICKED, id)
+ {
+ m_linkInfo = linkinfo;
+ }
+
+ const wxHtmlLinkInfo &GetLinkInfo() const { return m_linkInfo; }
+
+ // default copy ctor, assignment operator and dtor are ok
+ virtual wxEvent *Clone() const { return new wxHtmlLinkEvent(*this); }
+
+private:
+ wxHtmlLinkInfo m_linkInfo;
+
+ DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxHtmlLinkEvent)
+};
+
+
+typedef void (wxEvtHandler::*wxHtmlCellEventFunction)(wxHtmlCellEvent&);
+typedef void (wxEvtHandler::*wxHtmlLinkEventFunction)(wxHtmlLinkEvent&);
+
+#define wxHtmlCellEventHandler(func) \
+ wxEVENT_HANDLER_CAST(wxHtmlCellEventFunction, func)
+#define wxHtmlLinkEventHandler(func) \
+ wxEVENT_HANDLER_CAST(wxHtmlLinkEventFunction, func)
+
+#define EVT_HTML_CELL_CLICKED(id, fn) \
+ wx__DECLARE_EVT1(wxEVT_HTML_CELL_CLICKED, id, wxHtmlCellEventHandler(fn))
+#define EVT_HTML_CELL_HOVER(id, fn) \
+ wx__DECLARE_EVT1(wxEVT_HTML_CELL_HOVER, id, wxHtmlCellEventHandler(fn))
+#define EVT_HTML_LINK_CLICKED(id, fn) \
+ wx__DECLARE_EVT1(wxEVT_HTML_LINK_CLICKED, id, wxHtmlLinkEventHandler(fn))
+
+
+// old wxEVT_COMMAND_* constants
+#define wxEVT_COMMAND_HTML_CELL_CLICKED wxEVT_HTML_CELL_CLICKED
+#define wxEVT_COMMAND_HTML_CELL_HOVER wxEVT_HTML_CELL_HOVER
+#define wxEVT_COMMAND_HTML_LINK_CLICKED wxEVT_HTML_LINK_CLICKED