Reviewed by Kevin Ollivier.
[WebKit.git] / WebKit / wx / WebFrame.h
index a6961eb177265a9bd52a17d63d8b8c4200c18be5..fb9526e5caf49f119ef451f06ba7e22391a0e87f 100644 (file)
     #include "wx/wx.h"
 #endif
 
-class WebViewPrivate;
+class WebFramePrivate;
 class WebViewFrameData;
 class wxWebView;
 
 namespace WebCore {
     class ChromeClientWx;
     class FrameLoaderClientWx;
+    class EditorClientWx;
     class Frame;
 }
 
@@ -57,14 +58,47 @@ namespace WebCore {
 #define WXDLLIMPEXP_WEBKIT
 #endif // SWIG
 
+class WXDLLIMPEXP_WEBKIT wxWebViewDOMElementInfo
+{
+public:
+    wxWebViewDOMElementInfo();
+
+    ~wxWebViewDOMElementInfo() { }
+
+    wxString GetTagName() const { return m_tagName; }
+    void SetTagName(const wxString& name) { m_tagName = name; }
+
+    bool IsSelected() const { return m_isSelected; }
+    void SetSelected(bool sel) { m_isSelected = sel; }
+
+    wxString GetText() const { return m_text; }
+    void SetText(const wxString& text) { m_text = text; }
+
+    wxString GetImageSrc() const { return m_imageSrc; }
+    void SetImageSrc(const wxString& src) { m_imageSrc = src; }
+
+    wxString GetLink() const { return m_link; }
+    void SetLink(const wxString& link) { m_link = link; }
+
+private:
+    void* m_domElement;
+    bool m_isSelected;
+    wxString m_tagName;
+    wxString m_text;
+    wxString m_imageSrc;
+    wxString m_link;
+};
+
 class WXDLLIMPEXP_WEBKIT wxWebFrame
 {
     // ChromeClientWx needs to get the Page* stored by the wxWebView
     // for the createWindow function. 
     friend class WebCore::ChromeClientWx;
     friend class WebCore::FrameLoaderClientWx;
+    friend class WebCore::EditorClientWx;
     friend class wxWebView;
 
+public:
     wxWebFrame(wxWebView* container, wxWebFrame* parent = NULL, WebViewFrameData* data = NULL);
     
     ~wxWebFrame();
@@ -86,6 +120,12 @@ class WXDLLIMPEXP_WEBKIT wxWebFrame
     void Copy();
     void Paste();
     
+    bool CanUndo();
+    bool CanRedo();
+    
+    void Undo();
+    void Redo();
+    
     wxString GetPageSource();
     void SetPageSource(const wxString& source, const wxString& baseUrl = wxEmptyString);
     
@@ -95,6 +135,10 @@ class WXDLLIMPEXP_WEBKIT wxWebFrame
     
     wxString RunScript(const wxString& javascript);
     
+    bool FindString(const wxString& string, bool forward = true,
+        bool caseSensitive = false, bool wrapSelection = true,
+        bool startInSelection = true);
+    
     bool CanIncreaseTextSize() const;
     void IncreaseTextSize();
     bool CanDecreaseTextSize() const;
@@ -106,13 +150,15 @@ class WXDLLIMPEXP_WEBKIT wxWebFrame
     void SetPageTitle(const wxString& title) { m_title = title; }
     
     WebCore::Frame* GetFrame();
+
+    wxWebViewDOMElementInfo HitTest(const wxPoint& post) const;
     
 private:
     float m_textMagnifier;
     bool m_isEditable;
     bool m_isInitialized;
     bool m_beingDestroyed;
-    WebViewPrivate* m_impl;
+    WebFramePrivate* m_impl;
     wxString m_title;
     
 };