X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0fe8a1b6ca95414cdffcb8120e7d6bdf44bf571d..7bd30a12ade503fd135c686ecc98a6f6d5fecbeb:/include/wx/webview.h diff --git a/include/wx/webview.h b/include/wx/webview.h index 5514cf10a1..0bc9f8547e 100644 --- a/include/wx/webview.h +++ b/include/wx/webview.h @@ -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 ///////////////////////////////////////////////////////////////////////////// @@ -20,17 +20,13 @@ #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,15 @@ 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; + virtual wxString CombineURIs(const wxString &baseuri, const wxString &newuri) = 0; +}; + extern WXDLLIMPEXP_DATA_WEB(const char) wxWebViewNameStr[]; extern WXDLLIMPEXP_DATA_WEB(const char) wxWebViewDefaultURLStr[]; @@ -222,6 +227,7 @@ public: * shown */ virtual wxString GetPageSource() = 0; + virtual wxString GetPageText() = 0; /** * Get the zoom factor of the page @@ -288,11 +294,14 @@ public: virtual bool HasSelection() = 0; virtual void DeleteSelection() = 0; virtual wxString GetSelectedText() = 0; - virtual wxString GetSelectedHTML() = 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? @@ -329,17 +338,22 @@ public: virtual bool CanRedo() = 0; virtual void Undo() = 0; virtual void Redo() = 0; + + //Virtual Filesystem Support + virtual void RegisterHandler(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; @@ -348,7 +362,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 @@ -375,7 +389,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; @@ -388,6 +402,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&); @@ -415,6 +430,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_