]> git.saurik.com Git - wxWidgets.git/commitdiff
Use shared pointers to hold wxWebHandlers throughout.
authorSteve Lamerton <steve.lamerton@gmail.com>
Mon, 8 Aug 2011 15:12:33 +0000 (15:12 +0000)
committerSteve Lamerton <steve.lamerton@gmail.com>
Mon, 8 Aug 2011 15:12:33 +0000 (15:12 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@68605 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/gtk/webview_webkit.h
include/wx/msw/webview_ie.h
include/wx/osx/webview_webkit.h
include/wx/webview.h
interface/wx/webview.h
samples/web/web.cpp
src/gtk/webview_webkit.cpp
src/msw/webview_ie.cpp

index 9d3c500c0a94993249b4934cf31365d745527237..7d88128bedb9585f693f8bd3bbfc457dfc611821 100644 (file)
@@ -122,8 +122,8 @@ public:
     virtual void RunScript(const wxString& javascript);
     
     //Virtual Filesystem Support
-    virtual void RegisterHandler(wxWebHandler* handler);
-    virtual wxVector<wxWebHandler*> GetHandlers() { return m_handlerList; }
+    virtual void RegisterHandler(wxSharedPtr<wxWebHandler> handler);
+    virtual wxVector<wxSharedPtr<wxWebHandler> > GetHandlers() { return m_handlerList; }
 
     /** FIXME: hack to work around signals being received too early */
     bool m_ready;
@@ -136,8 +136,7 @@ public:
      * user)
      */
     bool m_busy;
-    
-    bool m_guard;
+
     wxString m_vfsurl;
 
     //We use this flag to stop recursion when we load a page from the navigation
@@ -156,7 +155,7 @@ private:
     GtkWidget *web_view;
     gint m_historyLimit;
 
-    wxVector<wxWebHandler*> m_handlerList;
+    wxVector<wxSharedPtr<wxWebHandler> > m_handlerList;
 
     wxDECLARE_DYNAMIC_CLASS(wxWebViewWebKit);
 };
index aec06fc0d14df849c5bfc2e19865bceca5c76421..9d4671e422fade75085da8a6fd24668a97e81794 100644 (file)
@@ -110,7 +110,7 @@ public:
     virtual void RunScript(const wxString& javascript);
 
     //Virtual Filesystem Support
-    virtual void RegisterHandler(wxWebHandler* handler);
+    virtual void RegisterHandler(wxSharedPtr<wxWebHandler> handler);
 
     // ---- IE-specific methods
 
@@ -169,10 +169,10 @@ protected:
     VOID * fileP;
 
     wxFSFile* m_file;
-    wxWebHandler* m_handler;
+    wxSharedPtr<wxWebHandler> m_handler;
 
 public:
-    VirtualProtocol(wxWebHandler *handler);
+    VirtualProtocol(wxSharedPtr<wxWebHandler> handler);
     ~VirtualProtocol();
 
     //IUnknown
@@ -211,7 +211,7 @@ class ClassFactory : public IClassFactory
 private:
     ULONG m_refCount;
 public:
-    ClassFactory(wxWebHandler* handler) : m_handler(handler) {}
+    ClassFactory(wxSharedPtr<wxWebHandler> handler) : m_handler(handler) {}
     //IUnknown
     ULONG STDMETHODCALLTYPE AddRef();
     HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject);
@@ -222,7 +222,7 @@ public:
                                              REFIID riid, void** ppvObject);
     HRESULT STDMETHODCALLTYPE LockServer(BOOL fLock);
 private:
-    wxWebHandler* m_handler;
+    wxSharedPtr<wxWebHandler> m_handler;
 };
 
 #endif // wxUSE_WEBVIEW_IE && defined(__WXMSW__)
index 4af95519a589ce0aa05a954f95bd8993b94814f8..4d93115bf1e47411a8bd9238222753e47ff9d671 100644 (file)
@@ -114,7 +114,7 @@ public:
     void RunScript(const wxString& javascript);
     
     //Virtual Filesystem Support
-    virtual void RegisterHandler(wxWebHandler* WXUNUSED(handler)) {};
+    virtual void RegisterHandler(wxSharedPtr<wxWebHandler> WXUNUSED(handler)) {};
 
     // ---- methods not from the parent (common) interface
     bool  CanGetPageSource();
index 11958d379c4173ef9ce117a09f2b3929da0f6019..6f7b39f85cd15d28562aad5db002a2d5b96bf1d7 100644 (file)
@@ -339,7 +339,7 @@ public:
     virtual void Redo() = 0;
 
     //Virtual Filesystem Support
-    virtual void RegisterHandler(wxWebHandler* handler) = 0;
+    virtual void RegisterHandler(wxSharedPtr<wxWebHandler> handler) = 0;
 
     wxDECLARE_ABSTRACT_CLASS(wxWebView);
 };
index c94540709e042fa2f060071be05f4414ca1b968e..1b82da4864c9b1395e04f13736c7b4ae36534ab0 100644 (file)
@@ -335,9 +335,9 @@ public:
     
     /**
         Registers a custom scheme handler.
-        @param handler A pointer to a heap allocated wxWebHandler.
+        @param handler A shared pointer to a wxWebHandler.
     */
-    virtual void RegisterHandler(wxWebHandler* handler) = 0;
+    virtual void RegisterHandler(wxSharedPtr<wxWebHandler> handler) = 0;
 
     /**
         Reload the currently displayed URL.
index 2ec69bd83cb63324e4d1a66d15b348269f335da5..5529c560db17d92dbd4f4dd5d0a75df89c2eafe9 100644 (file)
@@ -195,7 +195,7 @@ WebFrame::WebFrame() : wxFrame(NULL, wxID_ANY, "wxWebView Sample")
     topsizer->Add(m_browser, wxSizerFlags().Expand().Proportion(1));
 
     //We register the test:// protocol for testing purposes
-    m_browser->RegisterHandler(new wxWebFileHandler());
+    m_browser->RegisterHandler(wxSharedPtr<wxWebHandler>(new wxWebFileHandler()));
 
     SetSizer(topsizer);
 
index ea424c8b163afe7a8c27b76a79fb3822a6b17af8..e88a5bfe8c31cafb2db481d501046ccf4c0b49ff 100644 (file)
@@ -103,10 +103,10 @@ wxgtk_webview_webkit_navigation(WebKitWebView *,
     else
     {
         wxString wxuri = uri;
-        wxWebHandler *handler = NULL;
-        wxVector<wxWebHandler*> hanlders = webKitCtrl->GetHandlers();
+        wxSharedPtr<wxWebHandler> handler;
+        wxVector<wxSharedPtr<wxWebHandler> > hanlders = webKitCtrl->GetHandlers();
         //We are not vetoed so see if we match one of the additional handlers
-        for(wxVector<wxWebHandler*>::iterator it = hanlders.begin();
+        for(wxVector<wxSharedPtr<wxWebHandler> >::iterator it = hanlders.begin();
             it != hanlders.end(); ++it)
         {
             if(wxuri.substr(0, (*it)->GetName().length()) == (*it)->GetName())
@@ -328,11 +328,11 @@ wxgtk_webview_webkit_resource_req(WebKitWebView *,
 {
     wxString uri = webkit_network_request_get_uri(request);
     
-    wxWebHandler *handler = NULL;
-    wxVector<wxWebHandler*> hanlders = webKitCtrl->GetHandlers();
+    wxSharedPtr<wxWebHandler> handler;
+    wxVector<wxSharedPtr<wxWebHandler> > hanlders = webKitCtrl->GetHandlers();
     
     //We are not vetoed so see if we match one of the additional handlers
-    for(wxVector<wxWebHandler*>::iterator it = hanlders.begin();
+    for(wxVector<wxSharedPtr<wxWebHandler> >::iterator it = hanlders.begin();
         it != hanlders.end(); ++it)
     {
         if(uri.substr(0, (*it)->GetName().length()) == (*it)->GetName())
@@ -913,7 +913,7 @@ void wxWebViewWebKit::RunScript(const wxString& javascript)
                                    javascript.mb_str(wxConvUTF8));
 }
 
-void wxWebViewWebKit::RegisterHandler(wxWebHandler* handler)
+void wxWebViewWebKit::RegisterHandler(wxSharedPtr<wxWebHandler> handler)
 {
     m_handlerList.push_back(handler);
 }
index bb3add6495d9758ae4d1d93190455bd4672a856a..868877c9ef330a6d664702b16ebc3ccbf0bed6b5 100644 (file)
@@ -665,7 +665,7 @@ void wxWebViewIE::RunScript(const wxString& javascript)
     document->Release();
 }
 
-void wxWebViewIE::RegisterHandler(wxWebHandler* handler)
+void wxWebViewIE::RegisterHandler(wxSharedPtr<wxWebHandler> handler)
 {
     ClassFactory* cf = new ClassFactory(handler);
     IInternetSession* session;
@@ -959,7 +959,7 @@ void wxWebViewIE::onActiveXEvent(wxActiveXEvent& evt)
     evt.Skip();
 }
 
-VirtualProtocol::VirtualProtocol(wxWebHandler *handler)
+VirtualProtocol::VirtualProtocol(wxSharedPtr<wxWebHandler> handler)
 {
     m_refCount = 0;
     m_file = NULL;