]>
Commit | Line | Data |
---|---|---|
1 | #ifndef _IEHTMLWIN_H_ | |
2 | #define _IEHTMLWIN_H_ | |
3 | #pragma warning( disable : 4101 4786) | |
4 | #pragma warning( disable : 4786) | |
5 | ||
6 | ||
7 | #include <wx/setup.h> | |
8 | #include <wx/wx.h> | |
9 | #include <exdisp.h> | |
10 | #include <iostream> | |
11 | using namespace std; | |
12 | ||
13 | #include "wxactivex.h" | |
14 | ||
15 | class wxMSHTMLEvent : public wxNotifyEvent | |
16 | { | |
17 | public: | |
18 | wxMSHTMLEvent(wxEventType commandType = wxEVT_NULL, int id = 0) | |
19 | : wxNotifyEvent(commandType, id) | |
20 | {} | |
21 | ||
22 | wxString GetText1() { return m_text1; } | |
23 | long GetLong1() { return m_long1; } | |
24 | long GetLong2() { return m_long2; } | |
25 | ||
26 | ||
27 | wxString m_text1; | |
28 | long m_long1, m_long2; | |
29 | ||
30 | virtual wxEvent *Clone() const { return new wxMSHTMLEvent(*this); } | |
31 | ||
32 | private: | |
33 | DECLARE_DYNAMIC_CLASS(wxMSHTMLEvent) | |
34 | ||
35 | }; | |
36 | ||
37 | BEGIN_DECLARE_EVENT_TYPES() | |
38 | DECLARE_LOCAL_EVENT_TYPE(wxEVT_COMMAND_MSHTML_BEFORENAVIGATE2, 0) | |
39 | DECLARE_LOCAL_EVENT_TYPE(wxEVT_COMMAND_MSHTML_NEWWINDOW2, 0) | |
40 | DECLARE_LOCAL_EVENT_TYPE(wxEVT_COMMAND_MSHTML_DOCUMENTCOMPLETE, 0) | |
41 | DECLARE_LOCAL_EVENT_TYPE(wxEVT_COMMAND_MSHTML_PROGRESSCHANGE, 0) | |
42 | DECLARE_LOCAL_EVENT_TYPE(wxEVT_COMMAND_MSHTML_STATUSTEXTCHANGE, 0) | |
43 | DECLARE_LOCAL_EVENT_TYPE(wxEVT_COMMAND_MSHTML_TITLECHANGE, 0) | |
44 | END_DECLARE_EVENT_TYPES() | |
45 | ||
46 | typedef void (wxEvtHandler::*wxMSHTMLEventFunction)(wxMSHTMLEvent&); | |
47 | ||
48 | #define EVT_MSHTML_BEFORENAVIGATE2(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_COMMAND_MSHTML_BEFORENAVIGATE2, id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxMSHTMLEventFunction, & fn ), NULL ), | |
49 | #define EVT_MSHTML_NEWWINDOW2(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_COMMAND_MSHTML_NEWWINDOW2, id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxMSHTMLEventFunction, & fn ), NULL ), | |
50 | #define EVT_MSHTML_DOCUMENTCOMPLETE(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_COMMAND_MSHTML_DOCUMENTCOMPLETE, id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxMSHTMLEventFunction, & fn ), NULL ), | |
51 | #define EVT_MSHTML_PROGRESSCHANGE(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_COMMAND_MSHTML_PROGRESSCHANGE, id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxMSHTMLEventFunction, & fn ), NULL ), | |
52 | #define EVT_MSHTML_STATUSTEXTCHANGE(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_COMMAND_MSHTML_STATUSTEXTCHANGE, id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxMSHTMLEventFunction, & fn ), NULL ), | |
53 | #define EVT_MSHTML_TITLECHANGE(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_COMMAND_MSHTML_TITLECHANGE, id, -1, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxMSHTMLEventFunction, & fn ), NULL ), | |
54 | ||
55 | ||
56 | enum wxIEHtmlRefreshLevel | |
57 | { | |
58 | wxIEHTML_REFRESH_NORMAL = 0, | |
59 | wxIEHTML_REFRESH_IFEXPIRED = 1, | |
60 | wxIEHTML_REFRESH_CONTINUE = 2, | |
61 | wxIEHTML_REFRESH_COMPLETELY = 3 | |
62 | }; | |
63 | ||
64 | class IStreamAdaptorBase; | |
65 | ||
66 | class wxIEHtmlWin : public wxActiveX | |
67 | { | |
68 | ||
69 | public: | |
70 | wxIEHtmlWin(wxWindow * parent, wxWindowID id = -1, | |
71 | const wxPoint& pos = wxDefaultPosition, | |
72 | const wxSize& size = wxDefaultSize, | |
73 | long style = 0, | |
74 | const wxString& name = wxPanelNameStr); | |
75 | virtual ~wxIEHtmlWin(); | |
76 | ||
77 | void LoadUrl(const wxString&); | |
78 | bool LoadString(wxString html); | |
79 | bool LoadStream(istream *strm); | |
80 | bool LoadStream(wxInputStream *is); | |
81 | ||
82 | void SetCharset(wxString charset); | |
83 | void SetEditMode(bool seton); | |
84 | bool GetEditMode(); | |
85 | wxString GetStringSelection(bool asHTML = false); | |
86 | wxString GetText(bool asHTML = false); | |
87 | ||
88 | bool GoBack(); | |
89 | bool GoForward(); | |
90 | bool GoHome(); | |
91 | bool GoSearch(); | |
92 | bool Refresh(wxIEHtmlRefreshLevel level); | |
93 | bool Stop(); | |
94 | ||
95 | DECLARE_EVENT_TABLE(); | |
96 | ||
97 | protected: | |
98 | void SetupBrowser(); | |
99 | bool LoadStream(IStreamAdaptorBase *pstrm); | |
100 | ||
101 | wxAutoOleInterface<IWebBrowser2> m_webBrowser; | |
102 | }; | |
103 | ||
104 | #endif /* _IEHTMLWIN_H_ */ |