1 /////////////////////////////////////////////////////////////////////////////
2 // Purpose:     Wrappers for wxHTML classes for wxLua
3 // Author:      J. Winwood
4 // Created:     June 2002
5 // Copyright:   (c) 2002 Lomtick Software. All rights reserved.
6 // Licence:     wxWidgets licence
7 /////////////////////////////////////////////////////////////////////////////
8 
9 #ifndef WX_LUA_WXLHTML_H
10 #define WX_LUA_WXLHTML_H
11 
12 #include "wx/html/htmlwin.h"
13 #include "wx/html/htmlcell.h"
14 
15 #include "wxbind/include/wxbinddefs.h"
16 #include "wxluasetup.h"
17 
18 #if wxLUA_USE_wxHTML
19 
20 // ----------------------------------------------------------------------------
21 // wxLuaHtmlWindow
22 // ----------------------------------------------------------------------------
23 
24 class WXDLLIMPEXP_BINDWXHTML wxLuaHtmlWindow : public wxHtmlWindow
25 {
26 public:
27     wxLuaHtmlWindow(const wxLuaState& wxlState,
28                     wxWindow *parent, wxWindowID id = wxID_ANY,
29                     const wxPoint& pos = wxDefaultPosition,
30                     const wxSize& size = wxDefaultSize,
31                     long style = wxHW_SCROLLBAR_AUTO,
32                     const wxString& name = wxT("wxLuaHtmlWindow"));
33 
~wxLuaHtmlWindow()34     virtual ~wxLuaHtmlWindow() {}
35 
36 #if wxCHECK_VERSION(2, 7, 0)
37     virtual bool
38 #else
39     virtual void
40 #endif
41         OnCellClicked(wxHtmlCell *cell, wxCoord x, wxCoord y, const wxMouseEvent& event);
42     virtual void OnCellMouseHover(wxHtmlCell *cell, wxCoord x, wxCoord y);
43     virtual void OnLinkClicked(const wxHtmlLinkInfo& link);
44     virtual void OnSetTitle(const wxString& title);
45 
46 private:
47     wxLuaState m_wxlState;
48 
49     DECLARE_ABSTRACT_CLASS(wxLuaHtmlWindow)
50 };
51 
52 // ----------------------------------------------------------------------------
53 // wxLuaHtmlWinTagEvent
54 // ----------------------------------------------------------------------------
55 
56 class WXDLLIMPEXP_BINDWXHTML wxLuaHtmlWinTagEvent : public wxEvent
57 {
58 public:
59     wxLuaHtmlWinTagEvent(wxEventType eventType = wxEVT_NULL);
60     wxLuaHtmlWinTagEvent(const wxLuaHtmlWinTagEvent& event);
61 
~wxLuaHtmlWinTagEvent()62     virtual ~wxLuaHtmlWinTagEvent() {}
63 
64     void SetTagInfo(const wxHtmlTag *pHtmlTag, wxHtmlWinParser *pParser);
65 
GetHtmlTag()66     const wxHtmlTag* GetHtmlTag() const { return m_pHtmlTag; }
GetHtmlParser()67     wxHtmlWinParser* GetHtmlParser() const { return m_pHtmlParser; }
68 
GetParseInnerCalled()69     bool GetParseInnerCalled() const { return m_fParseInnerCalled; }
SetParseInnerCalled(bool fParseInnerCalled)70     void SetParseInnerCalled(bool fParseInnerCalled) { m_fParseInnerCalled = fParseInnerCalled; }
71 
72 protected:
Clone()73     virtual wxEvent* Clone() const { return new wxLuaHtmlWinTagEvent(*this); }
74 
75 private:
76     const wxHtmlTag *m_pHtmlTag;
77     wxHtmlWinParser *m_pHtmlParser;
78     bool             m_fParseInnerCalled;
79     DECLARE_DYNAMIC_CLASS(wxLuaHtmlWinTagEvent)
80 };
81 
82 typedef void (wxEvtHandler::*wxLuaHtmlWinTagEventFunction)(wxLuaHtmlWinTagEvent&);
83 
84 BEGIN_DECLARE_EVENT_TYPES()
85     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_BINDWXHTML, wxEVT_HTML_TAG_HANDLER, 0)
86 END_DECLARE_EVENT_TYPES()
87 
88 #define EVT_HTML_TAG_HANDLER(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_HTML_TAG_HANDLER, id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) (wxLuaHtmlWinTagEventFunction) & fn, (wxObject *) NULL),
89 
90 #endif // wxLUA_USE_wxHTML
91 
92 #endif //WX_LUA_WXLHTML_H
93