]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/webview.h
fixing osx_carbon
[wxWidgets.git] / include / wx / webview.h
index 8e938ea9ee99f85c943c12cc5193e9c903bd1bba..6f7b39f85cd15d28562aad5db002a2d5b96bf1d7 100644 (file)
@@ -3,7 +3,7 @@
 // Purpose:     Common interface and events for web view component
 // Author:      Marianne Gagnon
 // Id:          $Id$
-// Copyright:   (c) 2010 Marianne Gagnon
+// Copyright:   (c) 2010 Marianne Gagnon, 2011 Steven Lamerton
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #include "wx/sharedptr.h"
 #include "wx/vector.h"
 
-class WXDLLIMPEXP_WEB wxWebHistoryItem
-{
-public:
-    wxWebHistoryItem(const wxString& url, const wxString& title) : 
-                     m_url(url), m_title(title) {}
-    wxString GetUrl() { return m_url; }
-    wxString GetTitle() { return m_title; }
+#include "wx/osx/webhistoryitem_webkit.h"
+#include "wx/gtk/webhistoryitem_webkit.h"
+#include "wx/msw/webhistoryitem_ie.h"
+
+class wxFSFile;
+class wxFileSystem;
 
-private:
-    wxString m_url, m_title;
-};
 
 /**
  * Zoom level in web view component
@@ -104,6 +100,14 @@ enum wxWebViewBackend
     wxWEB_VIEW_BACKEND_IE
 };
 
+//Base class for custom scheme handlers
+class WXDLLIMPEXP_WEB wxWebHandler
+{
+public:
+    virtual wxString GetName() const = 0;
+    virtual wxFSFile* GetFile(const wxString &uri) = 0;
+};
+
 extern WXDLLIMPEXP_DATA_WEB(const char) wxWebViewNameStr[];
 extern WXDLLIMPEXP_DATA_WEB(const char) wxWebViewDefaultURLStr[];
 
@@ -222,6 +226,7 @@ public:
      *         shown
      */
     virtual wxString GetPageSource() = 0;
+    virtual wxString GetPageText() = 0;
 
    /**
      * Get the zoom factor of the page
@@ -284,12 +289,18 @@ public:
     virtual void SetEditable(bool enable = true) = 0;
     virtual bool IsEditable() = 0;
 
-    // TODO:
-    //     wxString GetSelection();                         // maybe?
-    //     void SetSelection(...);                          // maybe?
+    virtual void SelectAll() = 0;
+    virtual bool HasSelection() = 0;
+    virtual void DeleteSelection() = 0;
+    virtual wxString GetSelectedText() = 0;
+    virtual wxString GetSelectedSource() = 0;
+    virtual void ClearSelection() = 0;
 
+    virtual void RunScript(const wxString& javascript) = 0;
+
+    // TODO:
     //     void EnableJavascript(bool enabled);             // maybe?
-    //     wxString RunScript(const wxString& javascript);  // maybe?
+    //       // maybe?
 
     //     void SetScrollPos(int pos);                      // maybe?
     //     int GetScrollPos();                              // maybe?
@@ -326,17 +337,22 @@ public:
     virtual bool CanRedo() = 0;
     virtual void Undo() = 0;
     virtual void Redo() = 0;
+
+    //Virtual Filesystem Support
+    virtual void RegisterHandler(wxSharedPtr<wxWebHandler> handler) = 0;
+
+    wxDECLARE_ABSTRACT_CLASS(wxWebView);
 };
 
 class WXDLLIMPEXP_WEB wxWebNavigationEvent : public wxCommandEvent
 {
 public:
     wxWebNavigationEvent() {}
-    wxWebNavigationEvent(wxEventType type, int id, const wxString href,
+    wxWebNavigationEvent(wxEventType type, int id, const wxString url,
                          const wxString target, bool canVeto)
         : wxCommandEvent(type, id)
     {
-        m_href = href;
+        m_url = url;
         m_target = target;
         m_vetoed = false;
         m_canVeto = canVeto;
@@ -345,7 +361,7 @@ public:
     /**
      *  Get the URL being visited
      */
-    const wxString& GetHref() const { return m_href; }
+    const wxString& GetURL() const { return m_url; }
 
     /**
      * Get the target (frame or window) in which the URL that caused this event
@@ -372,7 +388,7 @@ public:
     void Veto() { wxASSERT(m_canVeto); m_vetoed = true; }
 
 private:
-    wxString m_href;
+    wxString m_url;
     wxString m_target;
     bool m_canVeto;
     bool m_vetoed;
@@ -385,6 +401,7 @@ wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_WEB, wxEVT_COMMAND_WEB_VIEW_NAVIGATED, wxW
 wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_WEB, wxEVT_COMMAND_WEB_VIEW_LOADED, wxWebNavigationEvent );
 wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_WEB, wxEVT_COMMAND_WEB_VIEW_ERROR, wxWebNavigationEvent );
 wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_WEB, wxEVT_COMMAND_WEB_VIEW_NEWWINDOW, wxWebNavigationEvent );
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_WEB, wxEVT_COMMAND_WEB_VIEW_TITLE_CHANGED, wxWebNavigationEvent );
 
 typedef void (wxEvtHandler::*wxWebNavigationEventFunction)
              (wxWebNavigationEvent&);
@@ -412,6 +429,10 @@ typedef void (wxEvtHandler::*wxWebNavigationEventFunction)
     wx__DECLARE_EVT1(wxEVT_COMMAND_WEB_VIEW_NEWWINDOW, id, \
                      wxHtmlNavigatingEventHandler(fn))
 
+#define EVT_WEB_VIEW_TITLE_CHANGED(id, fn) \
+    wx__DECLARE_EVT1(wxEVT_COMMAND_WEB_VIEW_TITLE_CHANGED, id, \
+                     wxHtmlNavigatingEventHandler(fn))
+
 #endif // wxUSE_WEB
 
 #endif // _WX_WEB_VIEW_H_