--- /dev/null
+/////////////////////////////////////////////////////////////////////////////\r
+// Name: webview.h\r
+// Purpose: interface of wxWebView\r
+// Author: wxWidgets team\r
+// RCS-ID: $Id:$\r
+// Licence: wxWindows licence\r
+/////////////////////////////////////////////////////////////////////////////\r
+\r
+/**\r
+ Zoom levels availiable in wxWebView\r
+*/\r
+enum wxWebViewZoom\r
+{\r
+ wxWEB_VIEW_ZOOM_TINY,\r
+ wxWEB_VIEW_ZOOM_SMALL,\r
+ wxWEB_VIEW_ZOOM_MEDIUM, //!< default size\r
+ wxWEB_VIEW_ZOOM_LARGE,\r
+ wxWEB_VIEW_ZOOM_LARGEST\r
+};\r
+\r
+/**\r
+ The type of zooming that the web view control can perform\r
+*/\r
+enum wxWebViewZoomType\r
+{\r
+ /** \r
+ The entire layout scales when zooming, including images \r
+ */\r
+ wxWEB_VIEW_ZOOM_TYPE_LAYOUT,\r
+ /** \r
+ Only the text changes in size when zooming, images and other layout\r
+ elements retain their initial size \r
+ */\r
+ wxWEB_VIEW_ZOOM_TYPE_TEXT\r
+};\r
+\r
+/** \r
+ Types of errors that can cause navigation to fail\r
+*/\r
+enum wxWebNavigationError\r
+{\r
+ /** Connection error (timeout, etc.) */\r
+ wxWEB_NAV_ERR_CONNECTION = 1,\r
+ /** Invalid certificate */\r
+ wxWEB_NAV_ERR_CERTIFICATE = 2,\r
+ /** Authentication required */\r
+ wxWEB_NAV_ERR_AUTH = 3,\r
+ /** Other security error */\r
+ wxWEB_NAV_ERR_SECURITY = 4,\r
+ /** Requested resource not found */\r
+ wxWEB_NAV_ERR_NOT_FOUND = 5,\r
+ /** Invalid request/parameters (e.g. bad URL, bad protocol,\r
+ unsupported resource type) */\r
+ wxWEB_NAV_ERR_REQUEST = 6,\r
+ /** The user cancelled (e.g. in a dialog) */\r
+ wxWEB_NAV_ERR_USER_CANCELLED = 7,\r
+ /** Another (exotic) type of error that didn't fit in other categories*/\r
+ wxWEB_NAV_ERR_OTHER = 8\r
+};\r
+\r
+/** \r
+ Type of refresh \r
+*/\r
+enum wxWebViewReloadFlags\r
+{\r
+ /** Default reload, will access cache */\r
+ wxWEB_VIEW_RELOAD_DEFAULT = 0,\r
+ /** Reload the current view without accessing the cache */\r
+ wxWEB_VIEW_RELOAD_NO_CACHE \r
+};\r
+\r
+\r
+/**\r
+ * List of available backends for wxWebView\r
+ */\r
+enum wxWebViewBackend\r
+{\r
+ /** Value that may be passed to wxWebView to let it pick an appropriate\r
+ * engine for the current platform*/\r
+ wxWEB_VIEW_BACKEND_DEFAULT,\r
+\r
+ /** The OSX-native WebKit web engine */\r
+ wxWEB_VIEW_BACKEND_OSX_WEBKIT,\r
+\r
+ /** The GTK port of the WebKit engine */\r
+ wxWEB_VIEW_BACKEND_GTK_WEBKIT,\r
+\r
+ /** Use Microsoft Internet Explorer as web engine */\r
+ wxWEB_VIEW_BACKEND_IE\r
+};\r
+\r
+/**\r
+ @class wxWebView\r
+ \r
+ This control may be used to render web (HTML / CSS / javascript) documents.\r
+ Capabilities of the HTML renderer will depend upon the backed.\r
+ TODO: describe each backend and its capabilities here\r
+ \r
+ Note that errors are generally reported asynchronously though the\r
+ @c wxEVT_COMMAND_WEB_VIEW_ERROR event described below.\r
+ \r
+ @beginEventEmissionTable{wxWebNavigationEvent}\r
+ @event{EVT_WEB_VIEW_NAVIGATING(id, func)}\r
+ Process a @c wxEVT_COMMAND_WEB_VIEW_NAVIGATING event, generated before trying\r
+ to get a resource. This event may be vetoed to prevent navigating to this\r
+ resource. Note that if the displayed HTML document has several frames, one\r
+ such event will be generated per frame.\r
+ @event{EVT_WEB_VIEW_NAVIGATED(id, func)}\r
+ Process a @c wxEVT_COMMAND_WEB_VIEW_NAVIGATED event generated after it was\r
+ confirmed that a resource would be requested. This event may not be vetoed.\r
+ Note that if the displayed HTML document has several frames, one such event\r
+ will be generated per frame.\r
+ @event{EVT_WEB_VIEW_LOADED(id, func)}\r
+ Process a @c wxEVT_COMMAND_WEB_VIEW_LOADED event generated when the document\r
+ is fully loaded and displayed.\r
+ @event{EVT_WEB_VIEW_ERRROR(id, func)}\r
+ Process a @c wxEVT_COMMAND_WEB_VIEW_ERROR event generated when a navigation\r
+ error occurs.\r
+ The integer associated with this event will be a wxWebNavigationError item.\r
+ The string associated with this event may contain a backend-specific more\r
+ precise error message/code.\r
+ @endEventTable\r
+ \r
+ @library{wxweb}\r
+ @category{ctrl}\r
+ */\r
+class wxWebView : public wxControl\r
+{\r
+public:\r
+\r
+ /**\r
+ Creation function for two-step creation.\r
+ */\r
+ virtual bool Create(wxWindow* parent,\r
+ wxWindowID id,\r
+ const wxString& url,\r
+ const wxPoint& pos,\r
+ const wxSize& size,\r
+ long style,\r
+ const wxString& name) = 0;\r
+\r
+ /**\r
+ Factory function to create a new wxWebView for two-step creation\r
+ (you need to call wxWebView::Create on the returned object)\r
+ @param backend which web engine to use as backend for wxWebView\r
+ @return the created wxWebView, or NULL if the requested backend is\r
+ not available\r
+ */\r
+ static wxWebView* New(wxWebViewBackend backend = wxWEB_VIEW_BACKEND_DEFAULT);\r
+\r
+ /**\r
+ Factory function to create a new wxWebView\r
+ @param parent parent window to create this view in\r
+ @param id ID of this control\r
+ @param url URL to load by default in the web view\r
+ @param pos position to create this control at\r
+ (you may use wxDefaultPosition if you use sizers)\r
+ @param size size to create this control with\r
+ (you may use wxDefaultSize if you use sizers)\r
+ @param backend which web engine to use as backend for wxWebView\r
+ @return the created wxWebView, or NULL if the requested backend\r
+ is not available\r
+ */\r
+ static wxWebView* New(wxWindow* parent,\r
+ wxWindowID id,\r
+ const wxString& url = wxWebViewDefaultURLStr,\r
+ const wxPoint& pos = wxDefaultPosition,\r
+ const wxSize& size = wxDefaultSize,\r
+ wxWebViewBackend backend = wxWEB_VIEW_BACKEND_DEFAULT,\r
+ long style = 0,\r
+ const wxString& name = wxWebViewNameStr);\r
+\r
+\r
+ /** \r
+ Get whether it is possible to navigate back in the history of\r
+ visited pages\r
+ */\r
+ virtual bool CanGoBack() = 0;\r
+\r
+ /** \r
+ Get whether it is possible to navigate forward in the history of\r
+ visited pages\r
+ */\r
+ virtual bool CanGoForward() = 0;\r
+\r
+ /** \r
+ Navigate back in the history of visited pages.\r
+ Only valid if CanGoBack() returned true.\r
+ */\r
+ virtual void GoBack() = 0;\r
+\r
+ /**\r
+ Navigate forwardin the history of visited pages.\r
+ Only valid if CanGoForward() returned true.\r
+ */\r
+ virtual void GoForward() = 0;\r
+\r
+ /**\r
+ Load a HTMl document (web page) from a URL\r
+ @param url the URL where the HTML document to display can be found\r
+ @note web engines generally report errors asynchronously, so if you wish\r
+ to know whether loading the URL was successful, register to receive\r
+ navigation error events\r
+ */\r
+ virtual void LoadUrl(const wxString& url) = 0;\r
+\r
+ /**\r
+ Stop the current page loading process, if any.\r
+ May trigger an error event of type @c wxWEB_NAV_ERR_USER_CANCELLED.\r
+ TODO: make @c wxWEB_NAV_ERR_USER_CANCELLED errors uniform across ports.\r
+ */\r
+ virtual void Stop() = 0;\r
+\r
+ /**\r
+ Reload the currently displayed URL.\r
+ @param flags A bit array that may optionnally contain reload options\r
+ */\r
+ virtual void Reload(wxWebViewReloadFlags flags = wxWEB_VIEW_RELOAD_DEFAULT) = 0;\r
+\r
+\r
+ /**\r
+ Get the URL of the currently displayed document\r
+ */\r
+ virtual wxString GetCurrentURL() = 0;\r
+\r
+ /**\r
+ Get the title of the current web page, or its URL/path if title is not\r
+ available\r
+ */\r
+ virtual wxString GetCurrentTitle() = 0;\r
+\r
+ /**\r
+ Get the HTML source code of the currently displayed document\r
+ @return the HTML source code, or an empty string if no page is currently\r
+ shown\r
+ */\r
+ virtual wxString GetPageSource() = 0;\r
+\r
+ /**\r
+ Get the zoom factor of the page\r
+ @return How much the HTML document is zoomed (scaleed)\r
+ */\r
+ virtual wxWebViewZoom GetZoom() = 0;\r
+\r
+ /**\r
+ Set the zoom factor of the page\r
+ @param zoom How much to zoom (scale) the HTML document\r
+ */\r
+ virtual void SetZoom(wxWebViewZoom zoom) = 0;\r
+\r
+ /**\r
+ Set how to interpret the zoom factor\r
+ @param zoomType how the zoom factor should be interpreted by the\r
+ HTML engine\r
+ @note invoke canSetZoomType() first, some HTML renderers may not\r
+ support all zoom types\r
+ */\r
+ virtual void SetZoomType(wxWebViewZoomType zoomType) = 0;\r
+\r
+ /**\r
+ Get how the zoom factor is currently interpreted\r
+ @return how the zoom factor is currently interpreted by the HTML engine\r
+ */\r
+ virtual wxWebViewZoomType GetZoomType() const = 0;\r
+\r
+ /**\r
+ Retrieve whether the current HTML engine supports a type of zoom\r
+ @param type the type of zoom to test\r
+ @return whether this type of zoom is supported by this HTML engine\r
+ (and thus can be set through setZoomType())\r
+ */\r
+ virtual bool CanSetZoomType(wxWebViewZoomType type) const = 0;\r
+\r
+ /**\r
+ Set the displayed page source to the contents of the given string\r
+ @param html the string that contains the HTML data to display\r
+ @param baseUrl URL assigned to the HTML data, to be used to resolve\r
+ relative paths, for instance\r
+ */\r
+ virtual void SetPage(const wxString& html, const wxString& baseUrl) = 0;\r
+\r
+ /**\r
+ Set the displayed page source to the contents of the given stream\r
+ @param html the stream to read HTML data from\r
+ @param baseUrl URL assigned to the HTML data, to be used to resolve\r
+ relative paths, for instance\r
+ */\r
+ virtual void SetPage(wxInputStream& html, wxString baseUrl)\r
+ {\r
+ wxStringOutputStream stream;\r
+ stream.Write(html);\r
+ SetPage(stream.GetString(), baseUrl);\r
+ }\r
+\r
+ /**\r
+ Opens a print dialog so that the user may print the currently\r
+ displayed page.\r
+ */\r
+ virtual void Print() = 0;\r
+\r
+ /**\r
+ Returns whether the web control is currently busy (e.g. loading a page)\r
+ */\r
+ virtual bool IsBusy() = 0;\r
+};\r
+\r
+\r
+\r
+\r
+/**\r
+ @class wxWebNavigationEvent\r
+\r
+ A navigation event holds information about events associated with \r
+ wxWebView objects.\r
+\r
+ @beginEventEmissionTable{wxWebNavigationEvent}\r
+ @event{EVT_WEB_VIEW_NAVIGATING(id, func)}\r
+ Process a @c wxEVT_COMMAND_WEB_VIEW_NAVIGATING event, generated before trying\r
+ to get a resource. This event may be vetoed to prevent navigating to this\r
+ resource. Note that if the displayed HTML document has several frames, one\r
+ such event will be generated per frame.\r
+ @event{EVT_WEB_VIEW_NAVIGATED(id, func)}\r
+ Process a @c wxEVT_COMMAND_WEB_VIEW_NAVIGATED event generated after it was\r
+ confirmed that a resource would be requested. This event may not be vetoed.\r
+ Note that if the displayed HTML document has several frames, one such event\r
+ will be generated per frame.\r
+ @event{EVT_WEB_VIEW_LOADED(id, func)}\r
+ Process a @c wxEVT_COMMAND_WEB_VIEW_LOADED event generated when the document\r
+ is fully loaded and displayed.\r
+ @event{EVT_WEB_VIEW_ERRROR(id, func)}\r
+ Process a @c wxEVT_COMMAND_WEB_VIEW_ERROR event generated when a navigation\r
+ error occurs.\r
+ The integer associated with this event will be a wxWebNavigationError item.\r
+ The string associated with this event may contain a backend-specific more\r
+ precise error message/code.\r
+ @endEventTable\r
+\r
+ @library{wxweb}\r
+ @category{events}\r
+\r
+ @see wxWebView\r
+*/\r
+class wxWebNavigationEvent : public wxCommandEvent\r
+{\r
+public:\r
+ wxWebNavigationEvent();\r
+ wxWebNavigationEvent(wxEventType type, int id, const wxString href,\r
+ const wxString target, bool canVeto);\r
+ /**\r
+ Get the URL being visited\r
+ */\r
+ const wxString& GetHref() const { return m_href; }\r
+\r
+ /**\r
+ Get the target (frame or window) in which the URL that caused this event\r
+ is viewed, or an empty string if not available.\r
+ */\r
+ const wxString& GetTarget() const;\r
+\r
+ // default copy ctor, assignment operator and dtor are ok\r
+ virtual wxEvent* Clone() const;\r
+\r
+ /** \r
+ Get whether this event may be vetoed (stopped/prevented). Only\r
+ meaningful for events fired before navigation takes place.\r
+ */\r
+ bool CanVeto() const;\r
+\r
+ /** \r
+ Whether this event was vetoed (stopped/prevented). Only meaningful for\r
+ events fired before navigation takes place.\r
+ */\r
+ bool IsVetoed() const;\r
+\r
+ /** \r
+ Veto (prevent/stop) this event. Only meaningful for events fired\r
+ before navigation takes place. Only valid if CanVeto() returned true.\r
+ */\r
+ void Veto();\r
+};
\ No newline at end of file