Add GetPageText to MSW IE and to GTK WebKit. Add stub for OSX and document.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@68250 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Steve Lamerton
2011-07-13 17:25:05 +00:00
parent 97ba4d81a8
commit 241b769f96
7 changed files with 35 additions and 0 deletions

View File

@@ -110,6 +110,7 @@ public:
virtual wxString GetCurrentURL(); virtual wxString GetCurrentURL();
virtual wxString GetCurrentTitle(); virtual wxString GetCurrentTitle();
virtual wxString GetPageSource(); virtual wxString GetPageSource();
virtual wxString GetPageText();
//We do not want to hide the other overloads //We do not want to hide the other overloads
using wxWebView::SetPage; using wxWebView::SetPage;
virtual void SetPage(const wxString& html, const wxString& baseUrl); virtual void SetPage(const wxString& html, const wxString& baseUrl);

View File

@@ -63,6 +63,7 @@ public:
virtual void Reload(wxWebViewReloadFlags flags = wxWEB_VIEW_RELOAD_DEFAULT); virtual void Reload(wxWebViewReloadFlags flags = wxWEB_VIEW_RELOAD_DEFAULT);
virtual wxString GetPageSource(); virtual wxString GetPageSource();
virtual wxString GetPageText();
virtual bool IsBusy(); virtual bool IsBusy();
virtual wxString GetCurrentURL(); virtual wxString GetCurrentURL();

View File

@@ -56,6 +56,7 @@ public:
virtual void Reload(wxWebViewReloadFlags flags = wxWEB_VIEW_RELOAD_DEFAULT); virtual void Reload(wxWebViewReloadFlags flags = wxWEB_VIEW_RELOAD_DEFAULT);
virtual void Stop(); virtual void Stop();
virtual wxString GetPageSource(); virtual wxString GetPageSource();
virtual wxString GetPageText() { return ""; }
virtual void SetPageTitle(const wxString& title) { m_pageTitle = title; } virtual void SetPageTitle(const wxString& title) { m_pageTitle = title; }
virtual wxString GetPageTitle(){ return m_pageTitle; } virtual wxString GetPageTitle(){ return m_pageTitle; }

View File

@@ -222,6 +222,7 @@ public:
* shown * shown
*/ */
virtual wxString GetPageSource() = 0; virtual wxString GetPageSource() = 0;
virtual wxString GetPageText() = 0;
/** /**
* Get the zoom factor of the page * Get the zoom factor of the page

View File

@@ -226,6 +226,11 @@ public:
*/ */
virtual wxString GetPageSource() = 0; virtual wxString GetPageSource() = 0;
/**
Get the text of the current page.
*/
virtual wxString GetPageText() = 0;
/** /**
Returns whether the web control is currently busy (e.g. loading a page). Returns whether the web control is currently busy (e.g. loading a page).
*/ */

View File

@@ -768,6 +768,17 @@ wxString wxWebViewWebKit::GetSelectedSource()
wxConvUTF8); wxConvUTF8);
} }
wxString wxWebViewWebKit::GetPageText()
{
WebKitDOMDocument* doc;
WebKitDOMHTMLElement* body;
doc = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(web_view));
body = webkit_dom_document_get_body(WEBKIT_DOM_DOCUMENT(doc));
return wxString(webkit_dom_html_element_get_inner_text(WEBKIT_DOM_HTML_ELEMENT(body)),
wxConvUTF8);
}
// static // static
wxVisualAttributes wxVisualAttributes
wxWebViewWebKit::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant)) wxWebViewWebKit::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))

View File

@@ -643,6 +643,21 @@ wxString wxWebViewIE::GetSelectedSource()
return selected; return selected;
} }
wxString wxWebViewIE::GetPageText()
{
IHTMLDocument2* document = GetDocument();
BSTR out;
IHTMLElement* body;
HRESULT hr = document->get_body(&body);
if(SUCCEEDED(hr))
{
body->get_innerText(&out);
body->Release();
}
document->Release();
return wxString(out);
}
bool wxWebViewIE::CanExecCommand(wxString command) bool wxWebViewIE::CanExecCommand(wxString command)
{ {
IHTMLDocument2* document = GetDocument(); IHTMLDocument2* document = GetDocument();