]> git.saurik.com Git - wxWidgets.git/commitdiff
Add GetPageText to MSW IE and to GTK WebKit. Add stub for OSX and document.
authorSteve Lamerton <steve.lamerton@gmail.com>
Wed, 13 Jul 2011 17:25:05 +0000 (17:25 +0000)
committerSteve Lamerton <steve.lamerton@gmail.com>
Wed, 13 Jul 2011 17:25:05 +0000 (17:25 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@68250 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
src/gtk/webview_webkit.cpp
src/msw/webview_ie.cpp

index d1c717e3a9ddd076822d5f77e8939ad6414211c4..15b919374c58fff887035806529cb55944a29016 100644 (file)
@@ -110,6 +110,7 @@ public:
     virtual wxString GetCurrentURL();
     virtual wxString GetCurrentTitle();
     virtual wxString GetPageSource();
+    virtual wxString GetPageText();
     //We do not want to hide the other overloads
     using wxWebView::SetPage;
     virtual void SetPage(const wxString& html, const wxString& baseUrl);
index 9e0132187ef7ec97bb823320764bf8b0b114f63a..416b54047c3904cbf44f2deb1cc2b137ee509c30 100644 (file)
@@ -63,6 +63,7 @@ public:
     virtual void Reload(wxWebViewReloadFlags flags = wxWEB_VIEW_RELOAD_DEFAULT);
 
     virtual wxString GetPageSource();
+    virtual wxString GetPageText();
 
     virtual bool IsBusy();
     virtual wxString GetCurrentURL();
index dcab0e31a0b5ea9d40de7914bafaf34ddde0a2cc..cbf0af285126e218298fc62e7394d0ea224843a1 100644 (file)
@@ -56,6 +56,7 @@ public:
     virtual void Reload(wxWebViewReloadFlags flags = wxWEB_VIEW_RELOAD_DEFAULT);
     virtual void Stop();
     virtual wxString GetPageSource();
+    virtual wxString GetPageText() { return ""; }
     virtual void SetPageTitle(const wxString& title) { m_pageTitle = title; }
     virtual wxString GetPageTitle(){ return m_pageTitle; }
 
index 1d448e9e9cd2a4eb65116e99985c724a7e58cf71..5d846a1d9a49c7c44149e245f5debe7a1909b400 100644 (file)
@@ -222,6 +222,7 @@ public:
      *         shown
      */
     virtual wxString GetPageSource() = 0;
+    virtual wxString GetPageText() = 0;
 
    /**
      * Get the zoom factor of the page
index 3f521c6e69d2b13c0f062b03063dbcf7177324c0..85e9a235eb2270cc353b520b504d55ab10a438e2 100644 (file)
@@ -226,6 +226,11 @@ public:
     */
     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).
     */
index f81872e41205976b3040823dc304ff98c62fbac1..4305f30675b7383608eb7a338e6d32389776136d 100644 (file)
@@ -768,6 +768,17 @@ wxString wxWebViewWebKit::GetSelectedSource()
                     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
 wxVisualAttributes
 wxWebViewWebKit::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
index 9cbb0b74ca8c555911e8d1cc7c1bec7f07391cd0..83accbe58bba0fb170f2bbff9f1b827c8304ecb1 100644 (file)
@@ -643,6 +643,21 @@ wxString wxWebViewIE::GetSelectedSource()
     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)
 {
     IHTMLDocument2* document = GetDocument();