Add wxWebView::GetNativeBackend() method.

This allows to use platform-specific methods in user code.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72210 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-07-24 21:59:21 +00:00
parent 723aa01a83
commit b6a49c2b75
5 changed files with 37 additions and 0 deletions

View File

@@ -114,6 +114,8 @@ public:
virtual void RegisterHandler(wxSharedPtr<wxWebViewHandler> handler);
virtual wxVector<wxSharedPtr<wxWebViewHandler> > GetHandlers() { return m_handlerList; }
virtual void* GetNativeBackend() const { return m_web_view; }
/** TODO: check if this can be made private
* The native control has a getter to check for busy state, but except in
* very recent versions of webkit this getter doesn't say everything we need

View File

@@ -337,6 +337,8 @@ public:
//Virtual Filesystem Support
virtual void RegisterHandler(wxSharedPtr<wxWebViewHandler> handler);
virtual void* GetNativeBackend() const { return m_webBrowser; }
// ---- IE-specific methods
// FIXME: I seem to be able to access remote webpages even in offline mode...

View File

@@ -111,6 +111,8 @@ public:
//Virtual Filesystem Support
virtual void RegisterHandler(wxSharedPtr<wxWebViewHandler> handler);
virtual void* GetNativeBackend() const { return m_webView; }
// ---- methods not from the parent (common) interface
bool CanGetPageSource() const;

View File

@@ -179,6 +179,9 @@ public:
virtual void Undo() = 0;
virtual void Redo() = 0;
//Get the pointer to the underlying native engine.
virtual void* GetNativeBackend() const = 0;
protected:
virtual void DoSetPage(const wxString& html, const wxString& baseUrl) = 0;

View File

@@ -304,6 +304,34 @@ public:
*/
virtual wxString GetCurrentURL() const = 0;
/**
Return the pointer to the native backend used by this control.
This method can be used to retrieve the pointer to the native rendering
engine used by this control. The return value needs to be down-casted
to the appropriate type depending on the platform: under Windows, it's
a pointer to IWebBrowser2 interface, under OS X it's a WebView pointer
and under GTK it's a WebKitWebView.
For example, you could set the WebKit options using this method:
@code
#include <webkit/webkit.h>
#ifdef __WXGTK__
WebKitWebView*
wv = static_cast<WebKitWebView*>(m_window->GetNativeBackend());
WebKitWebSettings* settings = webkit_web_view_get_settings(wv);
g_object_set(G_OBJECT(settings),
"enable-frame-flattening", TRUE,
NULL);
#endif
@endcode
@since 2.9.5
*/
virtual void* GetNativeBackend() const = 0;
/**
Get the HTML source code of the currently displayed document.
@return The HTML source code, or an empty string if no page is currently