#include </home/zeitlin/src/wx/github/interface/wx/webview.h>
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.
The IE backend uses Microsoft's Trident rendering engine, specifically the version used by the locally installed copy of Internet Explorer. As such it is only available for the MSW port. By default recent versions of the WebBrowser control, which this backend uses, emulate Internet Explorer 7. This can be changed with a registry setting, see this article for more information. This backend has full support for custom schemes and virtual file systems.
Under GTK the WebKit backend uses WebKitGTK+. The current minimum version 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 loaded using the data:// scheme.
The OSX WebKit backend uses Apple's WebView class. This backend has full support for custom schemes and virtual file systems.
Many of the methods in wxWebView are asynchronous, i.e. they return immediately and perform their work in the background. This includes functions such as LoadUrl() and Reload(). To receive notification of the progress and completion of these functions you need to handle the events that are provided. Specifically wxEVT_COMMAND_WEB_VIEW_LOADED
notifies when the page or a sub-frame has finished loading and wxEVT_COMMAND_WEB_VIEW_ERROR
notifies that an error has occurred.
wxWebView supports the registering of custom scheme handlers, for example file
or http
. To do this create a new class which inherits from 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.
wxWebFileHandler is provided to allow the navigation of pages inside a zip archive. It overrides the file
scheme and provides support for the standard file
syntax as well as paths to archives of the form file:///C:/example/docs.zip;protocol=zip/main.htm
The following event handler macros redirect the events to member function handlers 'func' with prototypes like:
Event macros for events emitted by this class:
wxEVT_COMMAND_WEB_VIEW_NAVIGATING
event, generated before trying to get a resource. This event may be vetoed to prevent navigating to this resource. Note that if the displayed HTML document has several frames, one such event will be generated per frame. wxEVT_COMMAND_WEB_VIEW_NAVIGATED
event generated after it was confirmed that a resource would be requested. This event may not be vetoed. Note that if the displayed HTML document has several frames, one such event will be generated per frame. wxEVT_COMMAND_WEB_VIEW_LOADED
event generated when the document is fully loaded and displayed. Note that if the displayed HTML document has several frames, one such event will be generated per frame. wxEVT_COMMAND_WEB_VIEW_ERROR
event generated when a navigation error occurs. The integer associated with this event will be a wxWebNavigationError item. The string associated with this event may contain a backend-specific more precise error message/code. wxEVT_COMMAND_WEB_VIEW_NEWWINDOW
event, generated when a new window is created. You must handle this event if you want anything to happen, for example to load the page in a new window or tab. wxEVT_COMMAND_WEB_VIEW_TITLE_CHANGED
event, generated when the page title changes. Use GetString to get the title. Public Member Functions | |
virtual bool | Create (wxWindow *parent, wxWindowID id, const wxString &url=wxWebViewDefaultURLStr, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString &name=wxWebViewNameStr)=0 |
Creation function for two-step creation. | |
virtual wxString | GetCurrentTitle () const =0 |
Get the title of the current web page, or its URL/path if title is not available. | |
virtual wxString | GetCurrentURL () const =0 |
Get the URL of the currently displayed document. | |
virtual wxString | GetPageSource () const =0 |
Get the HTML source code of the currently displayed document. | |
virtual wxString | GetPageText () const =0 |
Get the text of the current page. | |
virtual bool | IsBusy () const =0 |
Returns whether the web control is currently busy (e.g. | |
virtual bool | IsEditable () const =0 |
Returns whether the web control is currently editable. | |
virtual void | LoadURL (const wxString &url)=0 |
Load a web page from a URL. | |
virtual void | Print ()=0 |
Opens a print dialog so that the user may print the currently displayed page. | |
virtual void | RegisterHandler (wxSharedPtr< wxWebViewHandler > handler)=0 |
Registers a custom scheme handler. | |
virtual void | Reload (wxWebViewReloadFlags flags=wxWEB_VIEW_RELOAD_DEFAULT)=0 |
Reload the currently displayed URL. | |
virtual void | RunScript (const wxString &javascript)=0 |
Runs the given javascript code. | |
virtual void | SetEditable (bool enable=true)=0 |
Set the editable property of the web control. | |
virtual void | SetPage (const wxString &html, const wxString &baseUrl)=0 |
Set the displayed page source to the contents of the given string. | |
virtual void | SetPage (wxInputStream &html, wxString baseUrl) |
Set the displayed page source to the contents of the given stream. | |
virtual void | Stop ()=0 |
Stop the current page loading process, if any. | |
Clipboard | |
virtual bool | CanCopy () const =0 |
Returns true if the current selection can be copied. | |
virtual bool | CanCut () const =0 |
Returns true if the current selection can be cut. | |
virtual bool | CanPaste () const =0 |
Returns true if data can be pasted. | |
virtual void | Copy ()=0 |
Copies the current selection. | |
virtual void | Cut ()=0 |
Cuts the current selection. | |
virtual void | Paste ()=0 |
Pastes the current data. | |
History | |
virtual bool | CanGoBack () const =0 |
Returns true if it is possible to navigate backward in the history of visited pages. | |
virtual bool | CanGoForward () const =0 |
Returns true if it is possible to navigate forward in the history of visited pages. | |
virtual void | ClearHistory ()=0 |
Clear the history, this will also remove the visible page. | |
virtual void | EnableHistory (bool enable=true)=0 |
Enable or disable the history. | |
virtual wxVector< wxSharedPtr < wxWebViewHistoryItem > > | GetBackwardHistory ()=0 |
Returns a list of items in the back history. | |
virtual wxVector< wxSharedPtr < wxWebViewHistoryItem > > | GetForwardHistory ()=0 |
Returns a list of items in the forward history. | |
virtual void | GoBack ()=0 |
Navigate back in the history of visited pages. | |
virtual void | GoForward ()=0 |
Navigate forward in the history of visited pages. | |
virtual void | LoadHistoryItem (wxSharedPtr< wxWebViewHistoryItem > item)=0 |
Loads a history item. | |
Selection | |
virtual void | ClearSelection ()=0 |
Clears the current selection. | |
virtual void | DeleteSelection ()=0 |
Deletes the current selection. | |
virtual wxString | GetSelectedSource () const =0 |
Returns the currently selected source, if any. | |
virtual wxString | GetSelectedText () const =0 |
Returns the currently selected text, if any. | |
virtual bool | HasSelection () const =0 |
Returns true if there is a current selection. | |
virtual void | SelectAll ()=0 |
Selects the entire page. | |
Undo / Redo | |
virtual bool | CanRedo () const =0 |
Returns true if there is an action to redo. | |
virtual bool | CanUndo () const =0 |
Returns true if there is an action to undo. | |
virtual void | Redo ()=0 |
Redos the last action. | |
virtual void | Undo ()=0 |
Undos the last action. | |
Zoom | |
virtual bool | CanSetZoomType (wxWebViewZoomType type) const =0 |
Retrieve whether the current HTML engine supports a zoom type. | |
virtual wxWebViewZoom | GetZoom () const =0 |
Get the zoom factor of the page. | |
virtual wxWebViewZoomType | GetZoomType () const =0 |
Get how the zoom factor is currently interpreted. | |
virtual void | SetZoom (wxWebViewZoom zoom)=0 |
Set the zoom factor of the page. | |
virtual void | SetZoomType (wxWebViewZoomType zoomType)=0 |
Set how to interpret the zoom factor. | |
Static Public Member Functions | |
static wxWebView * | New (wxWebViewBackend backend=wxWEB_VIEW_BACKEND_DEFAULT) |
Factory function to create a new wxWebView for two-step creation (you need to call wxWebView::Create on the returned object) | |
static wxWebView * | New (wxWindow *parent, wxWindowID id, const wxString &url=wxWebViewDefaultURLStr, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, wxWebViewBackend backend=wxWEB_VIEW_BACKEND_DEFAULT, long style=0, const wxString &name=wxWebViewNameStr) |
Factory function to create a new wxWebView. |
virtual bool wxWebView::CanCopy | ( | ) | const [pure virtual] |
Returns true if the current selection can be copied.
true
on the OSX WebKit backend. virtual bool wxWebView::CanCut | ( | ) | const [pure virtual] |
Returns true if the current selection can be cut.
true
on the OSX WebKit backend. virtual bool wxWebView::CanGoBack | ( | ) | const [pure virtual] |
Returns true if it is possible to navigate backward in the history of visited pages.
virtual bool wxWebView::CanGoForward | ( | ) | const [pure virtual] |
Returns true if it is possible to navigate forward in the history of visited pages.
virtual bool wxWebView::CanPaste | ( | ) | const [pure virtual] |
Returns true if data can be pasted.
true
on the OSX WebKit backend. virtual bool wxWebView::CanRedo | ( | ) | const [pure virtual] |
Returns true if there is an action to redo.
virtual bool wxWebView::CanSetZoomType | ( | wxWebViewZoomType | type | ) | const [pure virtual] |
Retrieve whether the current HTML engine supports a zoom type.
type | The zoom type to test. |
virtual bool wxWebView::CanUndo | ( | ) | const [pure virtual] |
Returns true if there is an action to undo.
virtual void wxWebView::ClearHistory | ( | ) | [pure virtual] |
Clear the history, this will also remove the visible page.
virtual void wxWebView::ClearSelection | ( | ) | [pure virtual] |
Clears the current selection.
virtual void wxWebView::Copy | ( | ) | [pure virtual] |
Copies the current selection.
virtual bool wxWebView::Create | ( | wxWindow * | parent, |
wxWindowID | id, | ||
const wxString & | url = wxWebViewDefaultURLStr , |
||
const wxPoint & | pos = wxDefaultPosition , |
||
const wxSize & | size = wxDefaultSize , |
||
long | style = 0 , |
||
const wxString & | name = wxWebViewNameStr |
||
) | [pure virtual] |
Creation function for two-step creation.
virtual void wxWebView::Cut | ( | ) | [pure virtual] |
Cuts the current selection.
virtual void wxWebView::DeleteSelection | ( | ) | [pure virtual] |
Deletes the current selection.
Note that for wxWEB_VIEW_BACKEND_WEBKIT
the selection must be editable, either through SetEditable or the correct HTML attribute.
virtual void wxWebView::EnableHistory | ( | bool | enable = true | ) | [pure virtual] |
Enable or disable the history.
This will also clear the history.
virtual wxVector<wxSharedPtr<wxWebViewHistoryItem> > wxWebView::GetBackwardHistory | ( | ) | [pure virtual] |
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 wxString wxWebView::GetCurrentTitle | ( | ) | const [pure virtual] |
Get the title of the current web page, or its URL/path if title is not available.
virtual wxString wxWebView::GetCurrentURL | ( | ) | const [pure virtual] |
Get the URL of the currently displayed document.
virtual wxVector<wxSharedPtr<wxWebViewHistoryItem> > wxWebView::GetForwardHistory | ( | ) | [pure virtual] |
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 wxString wxWebView::GetPageSource | ( | ) | const [pure virtual] |
Get the HTML source code of the currently displayed document.
virtual wxString wxWebView::GetPageText | ( | ) | const [pure virtual] |
Get the text of the current page.
virtual wxString wxWebView::GetSelectedSource | ( | ) | const [pure virtual] |
Returns the currently selected source, if any.
virtual wxString wxWebView::GetSelectedText | ( | ) | const [pure virtual] |
Returns the currently selected text, if any.
virtual wxWebViewZoom wxWebView::GetZoom | ( | ) | const [pure virtual] |
Get the zoom factor of the page.
virtual wxWebViewZoomType wxWebView::GetZoomType | ( | ) | const [pure virtual] |
Get how the zoom factor is currently interpreted.
virtual void wxWebView::GoBack | ( | ) | [pure virtual] |
Navigate back in the history of visited pages.
Only valid if CanGoBack() returns true.
virtual void wxWebView::GoForward | ( | ) | [pure virtual] |
Navigate forward in the history of visited pages.
Only valid if CanGoForward() returns true.
virtual bool wxWebView::HasSelection | ( | ) | const [pure virtual] |
Returns true if there is a current selection.
virtual bool wxWebView::IsBusy | ( | ) | const [pure virtual] |
Returns whether the web control is currently busy (e.g.
loading a page).
virtual bool wxWebView::IsEditable | ( | ) | const [pure virtual] |
Returns whether the web control is currently editable.
virtual void wxWebView::LoadHistoryItem | ( | wxSharedPtr< wxWebViewHistoryItem > | item | ) | [pure virtual] |
Loads a history item.
virtual void wxWebView::LoadURL | ( | const wxString & | url | ) | [pure virtual] |
Load a web page from a URL.
url | The URL of the page to be loaded. |
static wxWebView* wxWebView::New | ( | wxWebViewBackend | backend = wxWEB_VIEW_BACKEND_DEFAULT | ) | [static] |
Factory function to create a new wxWebView for two-step creation (you need to call wxWebView::Create on the returned object)
backend | which web engine to use as backend for wxWebView |
static wxWebView* wxWebView::New | ( | wxWindow * | parent, |
wxWindowID | id, | ||
const wxString & | url = wxWebViewDefaultURLStr , |
||
const wxPoint & | pos = wxDefaultPosition , |
||
const wxSize & | size = wxDefaultSize , |
||
wxWebViewBackend | backend = wxWEB_VIEW_BACKEND_DEFAULT , |
||
long | style = 0 , |
||
const wxString & | name = wxWebViewNameStr |
||
) | [static] |
Factory function to create a new wxWebView.
parent | parent window to create this view in |
id | ID of this control |
url | URL to load by default in the web view |
pos | position to create this control at (you may use wxDefaultPosition if you use sizers) |
size | size to create this control with (you may use wxDefaultSize if you use sizers) |
backend | which web engine to use as backend for wxWebView |
virtual void wxWebView::Paste | ( | ) | [pure virtual] |
Pastes the current data.
virtual void wxWebView::Print | ( | ) | [pure virtual] |
Opens a print dialog so that the user may print the currently displayed page.
virtual void wxWebView::Redo | ( | ) | [pure virtual] |
Redos the last action.
virtual void wxWebView::RegisterHandler | ( | wxSharedPtr< wxWebViewHandler > | handler | ) | [pure virtual] |
Registers a custom scheme handler.
handler | A shared pointer to a wxWebHandler. |
virtual void wxWebView::Reload | ( | wxWebViewReloadFlags | flags = wxWEB_VIEW_RELOAD_DEFAULT | ) | [pure virtual] |
Reload the currently displayed URL.
flags | A bit array that may optionally contain reload options. |
virtual void wxWebView::RunScript | ( | const wxString & | javascript | ) | [pure virtual] |
Runs the given javascript code.
virtual void wxWebView::SelectAll | ( | ) | [pure virtual] |
Selects the entire page.
virtual void wxWebView::SetEditable | ( | bool | enable = true | ) | [pure virtual] |
Set the editable property of the web control.
Enabling allows the user to edit the page even if the contenteditable
attribute is not set. The exact capabilities vary with the backend being used.
Set the displayed page source to the contents of the given string.
html | The string that contains the HTML data to display. |
baseUrl | URL assigned to the HTML data, to be used to resolve relative paths, for instance. |
virtual void wxWebView::SetPage | ( | wxInputStream & | html, |
wxString | baseUrl | ||
) | [virtual] |
Set the displayed page source to the contents of the given stream.
html | The stream to read HTML data from. |
baseUrl | URL assigned to the HTML data, to be used to resolve relative paths, for instance. |
virtual void wxWebView::SetZoom | ( | wxWebViewZoom | zoom | ) | [pure virtual] |
Set the zoom factor of the page.
zoom | How much to zoom (scale) the HTML document. |
virtual void wxWebView::SetZoomType | ( | wxWebViewZoomType | zoomType | ) | [pure virtual] |
Set how to interpret the zoom factor.
zoomType | How the zoom factor should be interpreted by the HTML engine. |
virtual void wxWebView::Stop | ( | ) | [pure virtual] |
Stop the current page loading process, if any.
May trigger an error event of type wxWEB_NAV_ERR_USER_CANCELLED
. TODO: make wxWEB_NAV_ERR_USER_CANCELLED
errors uniform across ports.
virtual void wxWebView::Undo | ( | ) | [pure virtual] |
Undos the last action.