]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/gtk/webview_webkit.h
Add new wxEVT_COMMAND_WEB_VIEW_TITLE_CHANGED event. Implement for all backends, exten...
[wxWidgets.git] / include / wx / gtk / webview_webkit.h
index dfd6f2877e9cb3f68aa9a4e468515bab14a3403c..fbbf5da93601afeb68b76c68428812aba502f8f2 100644 (file)
 
 #include "wx/setup.h"
 
-#if wxUSE_WEBVIEW_WEBKIT
+#if wxUSE_WEBVIEW_WEBKIT && defined(__WXGTK__)
 
+#include "webkit/webkit.h"
+#include "wx/sharedptr.h"
 #include "wx/webview.h"
 
+//A set of hash function so we can map wxWebHistoryItems to WebKitWebHistoryItems
+class SharedPtrHash
+{
+public:
+    SharedPtrHash() { }
+
+    unsigned long operator()( const wxSharedPtr<wxWebHistoryItem> & item ) const
+    {
+        
+        return wxPointerHash()(item.get());
+    }
+    SharedPtrHash& operator=(const SharedPtrHash&) { return *this; }
+};
+
+class SharedPtrEqual
+{
+public:
+    SharedPtrEqual() { }
+    bool operator()( const wxSharedPtr<wxWebHistoryItem> & a,
+                     const wxSharedPtr<wxWebHistoryItem> & b ) const
+    {
+        return wxPointerEqual()(a.get(), b.get());
+    }
+
+    SharedPtrEqual& operator=(const SharedPtrEqual&) { return *this; }
+};
+
+WX_DECLARE_HASH_MAP(wxSharedPtr<wxWebHistoryItem>, WebKitWebHistoryItem*,
+                    SharedPtrHash, SharedPtrEqual, HistoryItemHash);
+
 //-----------------------------------------------------------------------------
 // wxWebViewWebKit
 //-----------------------------------------------------------------------------
@@ -72,9 +104,15 @@ public:
     virtual bool CanGoForward();
     virtual void ClearHistory();
     virtual void EnableHistory(bool enable = true);
+    virtual wxVector<wxSharedPtr<wxWebHistoryItem> > GetBackwardHistory();
+    virtual wxVector<wxSharedPtr<wxWebHistoryItem> > GetForwardHistory();
+    virtual void LoadHistoryItem(wxSharedPtr<wxWebHistoryItem> item);
     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);
     virtual void Print();
     virtual bool IsBusy();
@@ -85,7 +123,36 @@ public:
     virtual wxWebViewZoom GetZoom();
     virtual void SetZoom(wxWebViewZoom);
 
-
+    //Clipboard functions
+    virtual bool CanCut();
+    virtual bool CanCopy();
+    virtual bool CanPaste();
+    virtual void Cut();
+    virtual void Copy();
+    virtual void Paste();
+
+    //Undo / redo functionality
+    virtual bool CanUndo();
+    virtual bool CanRedo();
+    virtual void Undo();
+    virtual void Redo();
+
+    //Editing functions
+    virtual void SetEditable(bool enable = true);
+    virtual bool IsEditable();
+
+    //Selection
+    virtual void DeleteSelection();
+    virtual bool HasSelection();
+    virtual void SelectAll();
+    virtual wxString GetSelectedText();
+    virtual wxString GetSelectedSource();
+    virtual void ClearSelection();
+
+    virtual void RunScript(const wxString& javascript);
+    
+    //Virtual Filesystem Support
+    virtual void RegisterProtocol(wxWebProtocolHandler* hanlder);
 
     /** FIXME: hack to work around signals being received too early */
     bool m_ready;
@@ -110,6 +177,7 @@ private:
 
     GtkWidget *web_view;
     gint m_historyLimit;
+    HistoryItemHash m_historyMap;
 
     // FIXME: try to get DECLARE_DYNAMIC_CLASS macros & stuff right
     //DECLARE_DYNAMIC_CLASS(wxWebViewWebKit)