]> git.saurik.com Git - wxWidgets.git/commitdiff
Move wxWebView documentation into a separate interface file and add the wxWeb library...
authorSteve Lamerton <steve.lamerton@gmail.com>
Thu, 19 May 2011 18:28:01 +0000 (18:28 +0000)
committerSteve Lamerton <steve.lamerton@gmail.com>
Thu, 19 May 2011 18:28:01 +0000 (18:28 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@67764 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/doxygen/mainpages/libs.h
include/wx/webview.h
interface/wx/webview.h [new file with mode: 0644]

index 88c682f776a7d058803e79cc0d3f0e5d01b98c15..27e1c24191acc4a530ea9280ef623406ae992e24 100644 (file)
@@ -39,6 +39,7 @@ digraph Dependancies
     wxRichText [fillcolor = green, URL = "\ref page_libs_wxrichtext"];
     wxSTC      [fillcolor = green, URL = "\ref page_libs_wxstc"];
     wxXRC      [fillcolor = green, URL = "\ref page_libs_wxxrc"];
+    wxWeb      [fillcolor = green, URL = "\ref page_libs_wxweb"];
 
     wxCore -> wxBase;
     wxNet -> wxBase;
@@ -55,6 +56,7 @@ digraph Dependancies
     wxRichText -> wxAdvanced; wxRichText -> wxHTML; wxRichText -> wxXML;
     wxSTC -> wxCore;
     wxXRC -> wxAdvanced; wxXRC -> wxHTML; wxXRC -> wxXML;
+    wxWeb -> wxCore;
 }
 @enddot
 
@@ -202,5 +204,11 @@ text editor. See <http://www.scintilla.org/> for more info about Scintilla.
 
 Requires @ref page_libs_wxcore, @ref page_libs_wxbase.
 
+@section page_libs_wxweb wxWeb
+
+The wxWeb library contains the wxWebView control.
+
+Requires @ref page_libs_wxcore, @ref page_libs_wxbase.
+
 */
 
index 4cd6c89b2e4baec14dad47857298a3548d64b658..0382d5050f9ab9f15a659a035f0caec6723801aa 100644 (file)
@@ -96,44 +96,6 @@ enum wxWebViewBackend
 extern WXDLLIMPEXP_DATA_WEB(const char) wxWebViewNameStr[];
 extern WXDLLIMPEXP_DATA_WEB(const char) wxWebViewDefaultURLStr[];
 
-/**
-  * @class wxWebView
-  *
-  * This control may be used to render web (HTML / CSS / javascript) documents.
-  * Capabilities of the HTML renderer will depend upon the backed.
-  * TODO: describe each backend and its capabilities here
-  *
-  * Note that errors are generally reported asynchronously though the
-  * wxEVT_COMMAND_WEB_VIEW_ERROR event described below.
-  *
-  * @beginEventEmissionTable{wxWebNavigationEvent}
-  * @event{EVT_BUTTON(id, func)}
-  *
-  * @event{EVT_WEB_VIEW_NAVIGATING(id, func)}
-  * Process a 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.
-  *
-  * @event{EVT_WEB_VIEW_NAVIGATED(id, func)}
-  * Process a 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.
-  *
-  * @event{EVT_WEB_VIEW_LOADED(id, func)}
-  * Process a wxEVT_COMMAND_WEB_VIEW_LOADED event generated when the document
-  * is fully loaded and displayed.
-  *
-  * @event{EVT_WEB_VIEW_ERRROR(id, func)}
-  * Process a 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.
-  *
-  * @endEventTable
-  */
 class WXDLLIMPEXP_WEB wxWebView : public wxControl
 {
 public:
diff --git a/interface/wx/webview.h b/interface/wx/webview.h
new file mode 100644 (file)
index 0000000..b3f47cc
--- /dev/null
@@ -0,0 +1,380 @@
+/////////////////////////////////////////////////////////////////////////////\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