#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
//-----------------------------------------------------------------------------
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();
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;
GtkWidget *web_view;
gint m_historyLimit;
+ HistoryItemHash m_historyMap;
// FIXME: try to get DECLARE_DYNAMIC_CLASS macros & stuff right
//DECLARE_DYNAMIC_CLASS(wxWebViewWebKit)