X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/eff8f7952ed2ecc85b48dd01a047658d7f4eafcb..e33cedf4c66f02c8a075ef1471d70661ca03a316:/include/wx/msw/webview_ie.h diff --git a/include/wx/msw/webview_ie.h b/include/wx/msw/webview_ie.h index ff0500cb23..ce784c9be0 100644 --- a/include/wx/msw/webview_ie.h +++ b/include/wx/msw/webview_ie.h @@ -3,7 +3,7 @@ // Purpose: wxMSW IE wxWebView backend // Author: Marianne Gagnon // Id: $Id$ -// Copyright: (c) 2010 Marianne Gagnon, Steven Lamerton +// Copyright: (c) 2010 Marianne Gagnon, 2011 Steven Lamerton // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -12,19 +12,21 @@ #include "wx/setup.h" -#if wxUSE_WEBVIEW_IE +#if wxUSE_WEBVIEW && wxUSE_WEBVIEW_IE && defined(__WXMSW__) #include "wx/control.h" #include "wx/webview.h" #include "wx/msw/ole/automtn.h" #include "wx/msw/ole/activex.h" +#include "wx/msw/missing.h" #include "wx/sharedptr.h" #include "wx/vector.h" struct IHTMLDocument2; class wxFSFile; +class ClassFactory; -class WXDLLIMPEXP_WEB wxWebViewIE : public wxWebView +class WXDLLIMPEXP_WEBVIEW wxWebViewIE : public wxWebView { public: @@ -41,6 +43,8 @@ public: Create(parent, id, url, pos, size, style, name); } + ~wxWebViewIE(); + bool Create(wxWindow* parent, wxWindowID id, const wxString& url = wxWebViewDefaultURLStr, @@ -49,13 +53,13 @@ public: long style = 0, const wxString& name = wxWebViewNameStr); - virtual void LoadUrl(const wxString& url); - virtual void LoadHistoryItem(wxSharedPtr item); - virtual wxVector > GetBackwardHistory(); - virtual wxVector > GetForwardHistory(); + virtual void LoadURL(const wxString& url); + virtual void LoadHistoryItem(wxSharedPtr item); + virtual wxVector > GetBackwardHistory(); + virtual wxVector > GetForwardHistory(); - virtual bool CanGoForward(); - virtual bool CanGoBack(); + virtual bool CanGoForward() const; + virtual bool CanGoBack() const; virtual void GoBack(); virtual void GoForward(); virtual void ClearHistory(); @@ -63,12 +67,12 @@ public: virtual void Stop(); virtual void Reload(wxWebViewReloadFlags flags = wxWEB_VIEW_RELOAD_DEFAULT); - virtual wxString GetPageSource(); - virtual wxString GetPageText(); + virtual wxString GetPageSource() const; + virtual wxString GetPageText() const; - virtual bool IsBusy(); - virtual wxString GetCurrentURL(); - virtual wxString GetCurrentTitle(); + virtual bool IsBusy() const; + virtual wxString GetCurrentURL() const; + virtual wxString GetCurrentTitle() const; virtual void SetZoomType(wxWebViewZoomType); virtual wxWebViewZoomType GetZoomType() const; @@ -78,39 +82,39 @@ public: virtual void SetPage(const wxString& html, const wxString& baseUrl); - virtual wxWebViewZoom GetZoom(); + virtual wxWebViewZoom GetZoom() const; virtual void SetZoom(wxWebViewZoom zoom); //Clipboard functions - virtual bool CanCut(); - virtual bool CanCopy(); - virtual bool CanPaste(); + virtual bool CanCut() const; + virtual bool CanCopy() const; + virtual bool CanPaste() const; virtual void Cut(); virtual void Copy(); virtual void Paste(); //Undo / redo functionality - virtual bool CanUndo(); - virtual bool CanRedo(); + virtual bool CanUndo() const; + virtual bool CanRedo() const; virtual void Undo(); virtual void Redo(); //Editing functions virtual void SetEditable(bool enable = true); - virtual bool IsEditable(); + virtual bool IsEditable() const; //Selection virtual void SelectAll(); - virtual bool HasSelection(); + virtual bool HasSelection() const; virtual void DeleteSelection(); - virtual wxString GetSelectedText(); - virtual wxString GetSelectedSource(); + virtual wxString GetSelectedText() const; + virtual wxString GetSelectedSource() const; virtual void ClearSelection(); virtual void RunScript(const wxString& javascript); //Virtual Filesystem Support - virtual void RegisterProtocol(wxWebProtocolHandler* hanlder); + virtual void RegisterHandler(wxSharedPtr handler); // ---- IE-specific methods @@ -118,10 +122,10 @@ public: bool IsOfflineMode(); void SetOfflineMode(bool offline); - wxWebViewZoom GetIETextZoom(); + wxWebViewZoom GetIETextZoom() const; void SetIETextZoom(wxWebViewZoom level); - wxWebViewZoom GetIEOpticalZoom(); + wxWebViewZoom GetIEOpticalZoom() const; void SetIEOpticalZoom(wxWebViewZoom level); void onActiveXEvent(wxActiveXEvent& evt); @@ -147,19 +151,21 @@ private: //which are added as documentcomplete events arrive, unless we are loading //an item from the history. The position is stored as an int, and reflects //where we are in the history list. - wxVector > m_historyList; + wxVector > m_historyList; + wxVector m_factories; int m_historyPosition; bool m_historyLoadingFromList; bool m_historyEnabled; //Generic helper functions for IHtmlDocument commands - bool CanExecCommand(wxString command); + bool CanExecCommand(wxString command) const; void ExecCommand(wxString command); - IHTMLDocument2* GetDocument(); + IHTMLDocument2* GetDocument() const; + wxDECLARE_DYNAMIC_CLASS(wxWebViewIE); }; -class VirtualProtocol : public IInternetProtocol, public IInternetProtocolInfo +class VirtualProtocol : public IInternetProtocol { protected: ULONG m_refCount; @@ -168,10 +174,10 @@ protected: VOID * fileP; wxFSFile* m_file; - wxWebProtocolHandler* m_handler; + wxSharedPtr m_handler; public: - VirtualProtocol(wxWebProtocolHandler *handler); + VirtualProtocol(wxSharedPtr handler); ~VirtualProtocol(); //IUnknown @@ -203,33 +209,12 @@ public: ULARGE_INTEGER* WXUNUSED(plibNewPosition)) { return E_FAIL; } HRESULT STDMETHODCALLTYPE UnlockRequest() { return S_OK; } - - //IInternetProtocolInfo - HRESULT STDMETHODCALLTYPE CombineUrl(LPCWSTR pwzBaseUrl, - LPCWSTR pwzRelativeUrl, - DWORD dwCombineFlags, - LPWSTR pwzResult, DWORD cchResult, - DWORD *pcchResult, DWORD dwReserved); - HRESULT STDMETHODCALLTYPE CompareUrl(LPCWSTR pwzUrl1, LPCWSTR pwzUrl2, - DWORD dwCompareFlags) - { return INET_E_DEFAULT_ACTION; } - HRESULT STDMETHODCALLTYPE ParseUrl(LPCWSTR pwzUrl, PARSEACTION ParseAction, - DWORD dwParseFlags, LPWSTR pwzResult, - DWORD cchResult, DWORD *pcchResult, - DWORD dwReserved); - HRESULT STDMETHODCALLTYPE QueryInfo(LPCWSTR pwzUrl, - QUERYOPTION OueryOption, - DWORD dwQueryFlags, LPVOID pBuffer, - DWORD cbBuffer, DWORD *pcbBuf, - DWORD dwReserved); }; class ClassFactory : public IClassFactory { -private: - ULONG m_refCount; public: - ClassFactory(wxWebProtocolHandler* handler) : m_handler(handler) {} + ClassFactory(wxSharedPtr handler) : m_refCount(0), m_handler(handler) {} //IUnknown ULONG STDMETHODCALLTYPE AddRef(); HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject); @@ -240,9 +225,10 @@ public: REFIID riid, void** ppvObject); HRESULT STDMETHODCALLTYPE LockServer(BOOL fLock); private: - wxWebProtocolHandler* m_handler; + ULONG m_refCount; + wxSharedPtr m_handler; }; -#endif // wxUSE_WEBVIEW_IE +#endif // wxUSE_WEBVIEW && wxUSE_WEBVIEW_IE && defined(__WXMSW__) #endif // wxWebViewIE_H