Overhaul wxWebHandler naming to try and make it consistent with the rest of wxWidgets. Split wxWebFileHandler into its own file.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@68461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Steve Lamerton
2011-07-30 14:22:15 +00:00
parent 153530afb5
commit 9e3d4a3210
10 changed files with 270 additions and 222 deletions

View File

@@ -152,7 +152,7 @@ public:
virtual void RunScript(const wxString& javascript);
//Virtual Filesystem Support
virtual void RegisterProtocol(wxWebProtocolHandler* hanlder);
virtual void RegisterHandler(wxWebHandler* handler);
/** FIXME: hack to work around signals being received too early */
bool m_ready;

View File

@@ -110,7 +110,7 @@ public:
virtual void RunScript(const wxString& javascript);
//Virtual Filesystem Support
virtual void RegisterProtocol(wxWebProtocolHandler* hanlder);
virtual void RegisterHandler(wxWebHandler* handler);
// ---- IE-specific methods
@@ -168,10 +168,10 @@ protected:
VOID * fileP;
wxFSFile* m_file;
wxWebProtocolHandler* m_handler;
wxWebHandler* m_handler;
public:
VirtualProtocol(wxWebProtocolHandler *handler);
VirtualProtocol(wxWebHandler *handler);
~VirtualProtocol();
//IUnknown
@@ -229,7 +229,7 @@ class ClassFactory : public IClassFactory
private:
ULONG m_refCount;
public:
ClassFactory(wxWebProtocolHandler* handler) : m_handler(handler) {}
ClassFactory(wxWebHandler* handler) : m_handler(handler) {}
//IUnknown
ULONG STDMETHODCALLTYPE AddRef();
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject);
@@ -240,7 +240,7 @@ public:
REFIID riid, void** ppvObject);
HRESULT STDMETHODCALLTYPE LockServer(BOOL fLock);
private:
wxWebProtocolHandler* m_handler;
wxWebHandler* m_handler;
};
#endif // wxUSE_WEBVIEW_IE

View File

@@ -117,7 +117,7 @@ public:
void RunScript(const wxString& javascript);
//Virtual Filesystem Support
virtual void RegisterProtocol(wxWebProtocolHandler* hanlder) {};
virtual void RegisterHandler(wxWebHandler* handler) {};
// ---- methods not from the parent (common) interface
bool CanGetPageSource();

View File

@@ -107,29 +107,15 @@ enum wxWebViewBackend
wxWEB_VIEW_BACKEND_IE
};
//Base class for custom protocol handlers
class WXDLLIMPEXP_WEB wxWebProtocolHandler
//Base class for custom scheme handlers
class WXDLLIMPEXP_WEB wxWebHandler
{
public:
virtual wxString GetProtocol() = 0;
virtual wxString GetName() const = 0;
virtual wxFSFile* GetFile(const wxString &uri) = 0;
virtual wxString CombineURIs(const wxString &baseuri, const wxString &newuri) = 0;
};
//Loads from uris such as file:///C:/example/example.html or archives such as
//file:///C:/example/example.zip?protocol=zip;path=example.html
class WXDLLIMPEXP_WEB wxWebFileProtocolHandler : public wxWebProtocolHandler
{
public:
wxWebFileProtocolHandler();
virtual wxString GetProtocol() { return m_protocol; }
virtual wxFSFile* GetFile(const wxString &uri);
virtual wxString CombineURIs(const wxString &baseuri, const wxString &newuri);
private:
wxString m_protocol;
wxFileSystem* m_fileSystem;
};
extern WXDLLIMPEXP_DATA_WEB(const char) wxWebViewNameStr[];
extern WXDLLIMPEXP_DATA_WEB(const char) wxWebViewDefaultURLStr[];
@@ -361,7 +347,7 @@ public:
virtual void Redo() = 0;
//Virtual Filesystem Support
virtual void RegisterProtocol(wxWebProtocolHandler* handler) = 0;
virtual void RegisterHandler(wxWebHandler* handler) = 0;
};
class WXDLLIMPEXP_WEB wxWebNavigationEvent : public wxCommandEvent

View File

@@ -0,0 +1,39 @@
/////////////////////////////////////////////////////////////////////////////
// Name: webviewfilehandler.h
// Purpose: Custom handler for the file scheme to allow archive browsing
// Author: Steven Lamerton
// Id: $Id$
// Copyright: (c) 2011 Steven Lamerton
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_WEB_VIEW_FILE_HANDLER_H_
#define _WX_WEB_VIEW_FILE_HANDLER_H_
#include "wx/setup.h"
#if wxUSE_WEB
class wxFSFile;
class wxFileSystem;
#include "wx/webview.h"
//Loads from uris such as file:///C:/example/example.html or archives such as
//file:///C:/example/example.zip?protocol=zip;path=example.html
class WXDLLIMPEXP_WEB wxWebFileHandler : public wxWebHandler
{
public:
wxWebFileHandler();
virtual wxString GetName() const { return m_name; }
virtual wxFSFile* GetFile(const wxString &uri);
virtual wxString CombineURIs(const wxString &baseuri, const wxString &newuri);
private:
wxString m_name;
wxFileSystem* m_fileSystem;
};
#endif
#endif // _WX_WEB_VIEW_FILE_HANDLER_H_