]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/webview_ie.h
Add support for searching and highlighting a wxWebView.
[wxWidgets.git] / include / wx / msw / webview_ie.h
index 99b41af17422e044b0f66ebee4a2d6f8dbb06963..0a1f150d5fc63cdaf1b23f9c0156fa835c1225b9 100644 (file)
@@ -244,10 +244,13 @@ public:
 /* END OF MSHTMHST.H implementation */
 
 struct IHTMLDocument2;
 /* END OF MSHTMHST.H implementation */
 
 struct IHTMLDocument2;
+struct IHTMLElement;
+struct IMarkupPointer;
 class wxFSFile;
 class ClassFactory;
 class wxIEContainer;
 class DocHostUIHandler;
 class wxFSFile;
 class ClassFactory;
 class wxIEContainer;
 class DocHostUIHandler;
+class wxFindPointers;
 
 class WXDLLIMPEXP_WEBVIEW wxWebViewIE : public wxWebView
 {
 
 class WXDLLIMPEXP_WEBVIEW wxWebViewIE : public wxWebView
 {
@@ -320,6 +323,9 @@ public:
     virtual void Undo();
     virtual void Redo();
 
     virtual void Undo();
     virtual void Redo();
 
+    //Find function
+    virtual long Find(const wxString& text, int flags = wxWEB_VIEW_FIND_DEFAULT);
+
     //Editing functions
     virtual void SetEditable(bool enable = true);
     virtual bool IsEditable() const;
     //Editing functions
     virtual void SetEditable(bool enable = true);
     virtual bool IsEditable() const;
@@ -384,10 +390,21 @@ private:
     bool m_historyLoadingFromList;
     bool m_historyEnabled;
 
     bool m_historyLoadingFromList;
     bool m_historyEnabled;
 
-    //Generic helper functions for IHtmlDocument commands
+    //We store find flag, results and position.
+    wxVector<wxFindPointers> m_findPointers;
+    int m_findFlags;
+    wxString m_findText;
+    int m_findPosition;
+
+    //Generic helper functions
     bool CanExecCommand(wxString command) const;
     void ExecCommand(wxString command);
     wxCOMPtr<IHTMLDocument2> GetDocument() const;
     bool CanExecCommand(wxString command) const;
     void ExecCommand(wxString command);
     wxCOMPtr<IHTMLDocument2> GetDocument() const;
+    bool IsElementVisible(IHTMLElement* elm);
+    //Find helper functions.
+    void FindInternal(const wxString& text, int flags, int internal_flag);
+    long FindNext(int direction = 1);
+    void FindClear();
     //Toggles control features see INTERNETFEATURELIST for values.
     bool EnableControlFeature(long flag, bool enable = true);
 
     //Toggles control features see INTERNETFEATURELIST for values.
     bool EnableControlFeature(long flag, bool enable = true);
 
@@ -517,6 +534,18 @@ public:
     DECLARE_IUNKNOWN_METHODS;
 };
 
     DECLARE_IUNKNOWN_METHODS;
 };
 
+class wxFindPointers
+{
+public:
+    wxFindPointers(IMarkupPointer *ptrBegin, IMarkupPointer *ptrEnd)
+    {
+        begin = ptrBegin;
+        end = ptrEnd;
+    }
+    //The two markup pointers.
+    IMarkupPointer *begin, *end;
+};
+
 #endif // wxUSE_WEBVIEW && wxUSE_WEBVIEW_IE && defined(__WXMSW__)
 
 #endif // wxWebViewIE_H
 #endif // wxUSE_WEBVIEW && wxUSE_WEBVIEW_IE && defined(__WXMSW__)
 
 #endif // wxWebViewIE_H