X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0abf68248a8c34b0ff893d75a5f91a29c664bae4..dc73d7f5d468881a9cbb71f1a234f364ff52ceaa:/interface/wx/webview.h diff --git a/interface/wx/webview.h b/interface/wx/webview.h index 392932261d..94d3c68bb1 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -37,7 +37,7 @@ enum wxWebViewZoomType /** Types of errors that can cause navigation to fail */ -enum wxWebNavigationError +enum wxWebViewNavigationError { /** Connection error (timeout, etc.) */ wxWEB_NAV_ERR_CONNECTION, @@ -87,23 +87,24 @@ enum wxWebViewBackend }; /** - @class wxWebHistoryItem + @class wxWebViewHistoryItem A simple class that contains the URL and title of an element of the history of a wxWebView. - @library{wxweb} - @category{web} + @since 2.9.3 + @library{wxwebview} + @category{webview} @see wxWebView */ -class wxWebHistoryItem +class wxWebViewHistoryItem { public: /** Construtor. */ - wxWebHistoryItem(const wxString& url, const wxString& title); + wxWebViewHistoryItem(const wxString& url, const wxString& title); /** @return The url of the page. @@ -117,26 +118,33 @@ public: }; /** - @class wxWebHandler + @class wxWebViewHandler The base class for handling custom schemes in wxWebView, for example to allow virtual file system support. - @library{wxweb} - @category{web} + @since 2.9.3 + @library{wxwebview} + @category{webview} @see wxWebView */ -class wxWebHandler +class wxWebViewHandler { public: + /** + Constructor. Takes the name of the scheme that will be handled by this + class for example @c file or @c zip. + */ + wxWebViewHandler(const wxString& scheme); + /** @return A pointer to the file represented by @c uri. */ virtual wxFSFile* GetFile(const wxString &uri) = 0; /** - @return The name of the scheme, for example @c file or @c http. + @return The name of the scheme, as passed to the constructor. */ virtual wxString GetName() const = 0; }; @@ -145,6 +153,11 @@ public: @class wxWebView This control may be used to render web (HTML / CSS / javascript) documents. + It is designed to allow the creation of multiple backends for each port, + although currently just one is available. It differs from wxHtmlWindow in + that each backend is actually a full rendering engine, Trident on MSW and + Webkit on OSX and GTK. This allows the correct viewing complex pages with + javascript and css. @section descriptions Backend Descriptions @@ -167,14 +180,15 @@ public: required is 1.3.1 which ships by default with Ubuntu Natty and Debian Wheezy and has the package name libwebkitgtk-dev. Custom schemes and virtual files systems are supported under this backend, however embedded - resources such as images and stylesheets are currently extracted to a - temporary file before being loaded. + resources such as images and stylesheets are currently loaded using the + data:// scheme. @par wxWEB_VIEW_WEBKIT (OSX) The OSX WebKit backend uses Apple's WebView - class. Currently it does not support custom schemes and virtual file systems. + class. This backend has full support for custom schemes and virtual file + systems. @section async Asynchronous Notifications @@ -190,8 +204,7 @@ public: wxWebView supports the registering of custom scheme handlers, for example @c file or @c http. To do this create a new class which inherits from - wxWebHandler, where the wxWebHandler::GetName() method returns the scheme - you wish to handle and wxWebHandler::GetFile() returns a pointer to a + wxWebViewHandler, where wxWebHandler::GetFile() returns a pointer to a wxFSFile which represents the given url. You can then register your handler with RegisterHandler() it will be called for all pages and resources. @@ -200,7 +213,7 @@ public: standard @c file syntax as well as paths to archives of the form @c file:///C:/exmaple/docs.zip;protocol=zip/main.htm - @beginEventEmissionTable{wxWebNavigationEvent} + @beginEventEmissionTable{wxWebViewEvent} @event{EVT_WEB_VIEW_NAVIGATING(id, func)} Process a @c wxEVT_COMMAND_WEB_VIEW_NAVIGATING event, generated before trying to get a resource. This event may be vetoed to prevent navigating to this @@ -230,9 +243,10 @@ public: the page title changes. Use GetString to get the title. @endEventTable - @library{wxweb} - @category{ctrl,web} - @see wxWebHandler, wxWebNavigationEvent + @since 2.9.3 + @library{wxwebview} + @category{ctrl,webview} + @see wxWebViewHandler, wxWebViewEvent */ class wxWebView : public wxControl { @@ -284,34 +298,34 @@ public: Get the title of the current web page, or its URL/path if title is not available. */ - virtual wxString GetCurrentTitle() = 0; + virtual wxString GetCurrentTitle() const = 0; /** Get the URL of the currently displayed document. */ - virtual wxString GetCurrentURL() = 0; + virtual wxString GetCurrentURL() const = 0; /** Get the HTML source code of the currently displayed document. @return The HTML source code, or an empty string if no page is currently shown. */ - virtual wxString GetPageSource() = 0; + virtual wxString GetPageSource() const = 0; /** Get the text of the current page. */ - virtual wxString GetPageText() = 0; + virtual wxString GetPageText() const = 0; /** Returns whether the web control is currently busy (e.g. loading a page). */ - virtual bool IsBusy() = 0; + virtual bool IsBusy() const = 0; /** Returns whether the web control is currently editable */ - virtual bool IsEditable() = 0; + virtual bool IsEditable() const = 0; /** Load a web page from a URL @@ -320,7 +334,7 @@ public: to know whether loading the URL was successful, register to receive navigation error events. */ - virtual void LoadUrl(const wxString& url) = 0; + virtual void LoadURL(const wxString& url) = 0; /** Opens a print dialog so that the user may print the currently @@ -330,9 +344,9 @@ public: /** Registers a custom scheme handler. - @param handler A pointer to a heap allocated wxWebHandler. + @param handler A shared pointer to a wxWebHandler. */ - virtual void RegisterHandler(wxWebHandler* handler) = 0; + virtual void RegisterHandler(wxSharedPtr handler) = 0; /** Reload the currently displayed URL. @@ -381,18 +395,24 @@ public: /** Returns @true if the current selection can be copied. + + @note This always returns @c true on the OSX WebKit backend. */ - virtual bool CanCopy() = 0; + virtual bool CanCopy() const = 0; /** Returns @true if the current selection can be cut. + + @note This always returns @c true on the OSX WebKit backend. */ - virtual bool CanCut() = 0; + virtual bool CanCut() const = 0; /** Returns @true if data can be pasted. + + @note This always returns @c true on the OSX WebKit backend. */ - virtual bool CanPaste() = 0; + virtual bool CanPaste() const = 0; /** Copies the current selection. @@ -417,13 +437,13 @@ public: Returns @true if it is possible to navigate backward in the history of visited pages. */ - virtual bool CanGoBack() = 0; + virtual bool CanGoBack() const = 0; /** Returns @true if it is possible to navigate forward in the history of visited pages. */ - virtual bool CanGoForward() = 0; + virtual bool CanGoForward() const = 0; /** Clear the history, this will also remove the visible page. @@ -439,14 +459,14 @@ public: Returns a list of items in the back history. The first item in the vector is the first page that was loaded by the control. */ - virtual wxVector > GetBackwardHistory() = 0; + virtual wxVector > GetBackwardHistory() = 0; /** Returns a list of items in the forward history. The first item in the vector is the next item in the history with respect to the curently loaded page. */ - virtual wxVector > GetForwardHistory() = 0; + virtual wxVector > GetForwardHistory() = 0; /** Navigate back in the history of visited pages. @@ -463,7 +483,7 @@ public: /** Loads a history item. */ - virtual void LoadHistoryItem(wxSharedPtr item) = 0; + virtual void LoadHistoryItem(wxSharedPtr item) = 0; /** @name Selection @@ -484,17 +504,17 @@ public: /** Returns the currently selected source, if any. */ - virtual wxString GetSelectedSource() = 0; + virtual wxString GetSelectedSource() const = 0; /** Returns the currently selected text, if any. */ - virtual wxString GetSelectedText() = 0; + virtual wxString GetSelectedText() const = 0; /** Returns @true if there is a current selection. */ - virtual bool HasSelection() = 0; + virtual bool HasSelection() const = 0; /** Selects the entire page. @@ -508,12 +528,12 @@ public: /** Returns @true if there is an action to redo. */ - virtual bool CanRedo() = 0; + virtual bool CanRedo() const = 0; /** Returns @true if there is an action to undo. */ - virtual bool CanUndo() = 0; + virtual bool CanUndo() const = 0; /** Redos the last action. @@ -541,7 +561,7 @@ public: Get the zoom factor of the page. @return The current level of zoom. */ - virtual wxWebViewZoom GetZoom() = 0; + virtual wxWebViewZoom GetZoom() const = 0; /** Get how the zoom factor is currently interpreted. @@ -569,12 +589,12 @@ public: /** - @class wxWebNavigationEvent + @class wxWebViewEvent A navigation event holds information about events associated with wxWebView objects. - @beginEventEmissionTable{wxWebNavigationEvent} + @beginEventEmissionTable{wxWebViewEvent} @event{EVT_WEB_VIEW_NAVIGATING(id, func)} Process a @c wxEVT_COMMAND_WEB_VIEW_NAVIGATING event, generated before trying to get a resource. This event may be vetoed to prevent navigating to this @@ -603,18 +623,19 @@ public: Process a @c wxEVT_COMMAND_WEB_VIEW_TITLE_CHANGED event, generated when the page title changes. Use GetString to get the title. @endEventTable - - @library{wxweb} - @category{events,web} + + @since 2.9.3 + @library{wxwebview} + @category{events,webview} @see wxWebView */ -class wxWebNavigationEvent : public wxCommandEvent +class wxWebViewEvent : public wxNotifyEvent { public: - wxWebNavigationEvent(); - wxWebNavigationEvent(wxEventType type, int id, const wxString href, - const wxString target, bool canVeto); + wxWebViewEvent(); + wxWebViewEvent(wxEventType type, int id, const wxString href, + const wxString target); /** Get the name of the target frame which the url of this event @@ -627,24 +648,4 @@ public: Get the URL being visited */ const wxString& GetURL() const; - - virtual wxEvent* Clone() const; - - /** - Get whether this event may be vetoed (stopped/prevented). Only - meaningful for events fired before navigation takes place. - */ - bool CanVeto() const; - - /** - Whether this event was vetoed (stopped/prevented). Only meaningful for - events fired before navigation takes place or new window events. - */ - bool IsVetoed() const; - - /** - Veto (prevent/stop) this event. Only meaningful for events fired - before navigation takes place. Only valid if CanVeto() returned true. - */ - void Veto(); }; \ No newline at end of file