]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/gtk/webview_webkit.h
Ensure that the progress dialog parent is activated at the end under MSW.
[wxWidgets.git] / include / wx / gtk / webview_webkit.h
index 54d5a3f76267cf641ea54b8d2779c9afd582a5d0..2cef91f1c62ae3ef2a39d8986677bb5bc8324404 100644 (file)
 
 #include "wx/setup.h"
 
 
 #include "wx/setup.h"
 
-#if wxUSE_WEBVIEW_WEBKIT
+#if wxUSE_WEBVIEW && wxUSE_WEBVIEW_WEBKIT && defined(__WXGTK__)
 
 
-#include "webkit/webkit.h"
 #include "wx/sharedptr.h"
 #include "wx/webview.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
 //-----------------------------------------------------------------------------
 
 //-----------------------------------------------------------------------------
 // wxWebViewWebKit
 //-----------------------------------------------------------------------------
 
-class WXDLLIMPEXP_WEB wxWebViewWebKit : public wxWebView
+class WXDLLIMPEXP_WEBVIEW wxWebViewWebKit : public wxWebView
 {
 public:
     wxWebViewWebKit() { Init(); }
 {
 public:
     wxWebViewWebKit() { Init(); }
@@ -84,43 +53,65 @@ public:
     static wxVisualAttributes
     GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
 
     static wxVisualAttributes
     GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
 
-    // helper to allow access to protected member from GTK callback
-    void MoveWindow(int x, int y, int width, int height)
-    {
-        DoMoveWindow(x, y, width, height);
-    }
-
-    void ZoomIn();
-    void ZoomOut();
-    void SetWebkitZoom(float level);
-    float GetWebkitZoom();
-
     virtual void Stop();
     virtual void Stop();
-    virtual void LoadUrl(const wxString& url);
+    virtual void LoadURL(const wxString& url);
     virtual void GoBack();
     virtual void GoForward();
     virtual void Reload(wxWebViewReloadFlags flags = wxWEB_VIEW_RELOAD_DEFAULT);
     virtual void GoBack();
     virtual void GoForward();
     virtual void Reload(wxWebViewReloadFlags flags = wxWEB_VIEW_RELOAD_DEFAULT);
-    virtual bool CanGoBack();
-    virtual bool CanGoForward();
+    virtual bool CanGoBack() const;
+    virtual bool CanGoForward() const;
     virtual void ClearHistory();
     virtual void EnableHistory(bool enable = true);
     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 wxVector<wxSharedPtr<wxWebViewHistoryItem> > GetBackwardHistory();
+    virtual wxVector<wxSharedPtr<wxWebViewHistoryItem> > GetForwardHistory();
+    virtual void LoadHistoryItem(wxSharedPtr<wxWebViewHistoryItem> item);
+    virtual wxString GetCurrentURL() const;
+    virtual wxString GetCurrentTitle() const;
+    virtual wxString GetPageSource() const;
+    virtual wxString GetPageText() const;
+    //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 void SetPage(const wxString& html, const wxString& baseUrl);
     virtual void Print();
-    virtual bool IsBusy();
+    virtual bool IsBusy() const;
 
     void SetZoomType(wxWebViewZoomType);
     wxWebViewZoomType GetZoomType() const;
     bool CanSetZoomType(wxWebViewZoomType) const;
 
     void SetZoomType(wxWebViewZoomType);
     wxWebViewZoomType GetZoomType() const;
     bool CanSetZoomType(wxWebViewZoomType) const;
-    virtual wxWebViewZoom GetZoom();
+    virtual wxWebViewZoom GetZoom() const;
     virtual void SetZoom(wxWebViewZoom);
 
     virtual void SetZoom(wxWebViewZoom);
 
-
+    //Clipboard functions
+    virtual bool CanCut() const;
+    virtual bool CanCopy() const;
+    virtual bool CanPaste() const;
+    virtual void Cut();
+    virtual void Copy();
+    virtual void Paste();
+
+    //Undo / redo functionality
+    virtual bool CanUndo() const;
+    virtual bool CanRedo() const;
+    virtual void Undo();
+    virtual void Redo();
+
+    //Editing functions
+    virtual void SetEditable(bool enable = true);
+    virtual bool IsEditable() const;
+
+    //Selection
+    virtual void DeleteSelection();
+    virtual bool HasSelection() const;
+    virtual void SelectAll();
+    virtual wxString GetSelectedText() const;
+    virtual wxString GetSelectedSource() const;
+    virtual void ClearSelection();
+
+    virtual void RunScript(const wxString& javascript);
+    
+    //Virtual Filesystem Support
+    virtual void RegisterHandler(wxSharedPtr<wxWebViewHandler> handler);
+    virtual wxVector<wxSharedPtr<wxWebViewHandler> > GetHandlers() { return m_handlerList; }
 
     /** FIXME: hack to work around signals being received too early */
     bool m_ready;
 
     /** FIXME: hack to work around signals being received too early */
     bool m_ready;
@@ -134,23 +125,34 @@ public:
      */
     bool m_busy;
 
      */
     bool m_busy;
 
+    wxString m_vfsurl;
+
+    //We use this flag to stop recursion when we load a page from the navigation
+    //callback, mainly when loading a VFS page
+    bool m_guard;
+
 protected:
 
     virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const;
 
 private:
 
 protected:
 
     virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const;
 
 private:
 
+    void ZoomIn();
+    void ZoomOut();
+    void SetWebkitZoom(float level);
+    float GetWebkitZoom() const;
+
     // focus event handler: calls GTKUpdateBitmap()
     void GTKOnFocus(wxFocusEvent& event);
 
     GtkWidget *web_view;
     // focus event handler: calls GTKUpdateBitmap()
     void GTKOnFocus(wxFocusEvent& event);
 
     GtkWidget *web_view;
-    gint m_historyLimit;
-    HistoryItemHash m_historyMap;
+    int m_historyLimit;
+
+    wxVector<wxSharedPtr<wxWebViewHandler> > m_handlerList;
 
 
-    // FIXME: try to get DECLARE_DYNAMIC_CLASS macros & stuff right
-    //DECLARE_DYNAMIC_CLASS(wxWebViewWebKit)
+    wxDECLARE_DYNAMIC_CLASS(wxWebViewWebKit);
 };
 
 };
 
-#endif // if wxHAVE_WEB_BACKEND_GTK_WEBKIT
+#endif // wxUSE_WEBVIEW && wxUSE_WEBVIEW_WEBKIT && defined(__WXGTK__)
 
 #endif
 
 #endif