X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b6a49c2b759e24ff997e577ad491f18a44cccc00..22a3b6e4b2010f425a54708e46b1b463bd2817a7:/interface/wx/webview.h diff --git a/interface/wx/webview.h b/interface/wx/webview.h index e7a75785f7..933b45b98c 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -70,21 +70,30 @@ enum wxWebViewReloadFlags }; /** - * List of available backends for wxWebView - */ -enum wxWebViewBackend + Find flags used when searching for text on page. +*/ +enum wxWebViewFindFlags { - /** Value that may be passed to wxWebView to let it pick an appropriate - * engine for the current platform*/ - wxWEB_VIEW_BACKEND_DEFAULT, + /** Causes the search to restart when end or beginning reached */ + wxWEB_VIEW_FIND_WRAP = 0x0001, + + /** Matches an entire word when searching */ + wxWEB_VIEW_FIND_ENTIRE_WORD = 0x0002, + + /** Match case, i.e. case sensitive searching */ + wxWEB_VIEW_FIND_MATCH_CASE = 0x0004, - /** The WebKit web engine */ - wxWEB_VIEW_BACKEND_WEBKIT, + /** Highlights the search results */ + wxWEB_VIEW_FIND_HIGHLIGHT_RESULT = 0x0008, - /** Use Microsoft Internet Explorer as web engine */ - wxWEB_VIEW_BACKEND_IE + /** Searches for phrase in backward direction */ + wxWEB_VIEW_FIND_BACKWARDS = 0x0010, + + /** The default flag, which is simple searching */ + wxWEB_VIEW_FIND_DEFAULT = 0 }; + /** @class wxWebViewHistoryItem @@ -116,6 +125,46 @@ public: wxString GetTitle(); }; +/** + @class wxWebViewFactory + + An abstract factory class for creating wxWebView backends. Each + implementation of wxWebView should have its own factory. + + @since 2.9.5 + @library{wxwebview} + @category{webview} + + @see wxWebView + */ +class wxWebViewFactory : public wxObject +{ +public: + /** + Function to create a new wxWebView with two-step creation, + wxWebView::Create should be called on the returned object. + @return the created wxWebView + */ + virtual wxWebView* Create() = 0; + + /** + Function to create a new wxWebView with parameters. + @param parent Parent window for the control + @param id ID of this control + @param url Initial URL to load + @param pos Position of the control + @param size Size of the control + @return the created wxWebView + */ + virtual 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) = 0; +}; + /** @class wxWebViewHandler @@ -207,10 +256,13 @@ public: 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 @c file scheme and provides support for the - standard @c file syntax as well as paths to archives of the form - @c file:///C:/example/docs.zip;protocol=zip/main.htm + wxWebViewFSHandler is provided to access the virtual file system encapsulated by + wxFileSystem. The wxMemoryFSHandler documentation gives an example of how this + may be used. + + wxWebViewArchiveHandler is provided to allow the navigation of pages inside a zip + archive. It supports paths of the form: + @c scheme:///C:/example/docs.zip;protocol=zip/main.htm @beginEventEmissionTable{wxWebViewEvent} @event{EVT_WEB_VIEW_NAVIGATING(id, func)} @@ -263,35 +315,49 @@ public: const wxString& name = wxWebViewNameStr) = 0; /** - Factory function to create a new wxWebView for two-step creation - (you need to call wxWebView::Create on the returned object) - @param backend which web engine to use as backend for wxWebView - @return the created wxWebView, or NULL if the requested backend is - not available + Factory function to create a new wxWebView with two-step creation, + wxWebView::Create should be called on the returned object. + @param backend The backend web rendering engine to use. + @c wxWebViewBackendDefault, @c wxWebViewBackendIE and + @c wxWebViewBackendWebKit are predefined where appropriate. + @return The created wxWebView + @since 2.9.5 */ - static wxWebView* New(wxWebViewBackend backend = wxWEB_VIEW_BACKEND_DEFAULT); - + static wxWebView* New(const wxString& backend = wxWebViewBackendDefault); + /** - Factory function to create a new wxWebView - @param parent parent window to create this view in + Factory function to create a new wxWebView using a wxWebViewFactory. + @param parent Parent window for the control @param id ID of this control - @param url URL to load by default in the web view - @param pos position to create this control at - (you may use wxDefaultPosition if you use sizers) - @param size size to create this control with - (you may use wxDefaultSize if you use sizers) - @param backend which web engine to use as backend for wxWebView - @return the created wxWebView, or NULL if the requested backend + @param url Initial URL to load + @param pos Position of the control + @param size Size of the control + @param backend The backend web rendering engine to use. + @c wxWebViewBackendDefault, @c wxWebViewBackendIE and + @c wxWebViewBackendWebKit are predefined where appropriate. + @return The created wxWebView, or @c NULL if the requested backend is not available + @since 2.9.5 */ 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); + wxWindowID id, + const wxString& url = wxWebViewDefaultURLStr, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + const wxString& backend = wxWebViewBackendDefault, + long style = 0, + const wxString& name = wxWebViewNameStr); + + /** + Allows the registering of new backend for wxWebView. @a backend can be + used as an argument to New(). + @param backend The name for the new backend to be registered under + @param factory A shared pointer to the factory which creates the + appropriate backend. + @since 2.9.5 + */ + static void RegisterFactory(const wxString& backend, + wxSharedPtr factory); /** Get the title of the current web page, or its URL/path if title is not @@ -345,7 +411,7 @@ public: virtual wxString GetPageText() const = 0; /** - Returns whether the web control is currently busy (e.g. loading a page). + Returns whether the web control is currently busy (e.g.\ loading a page). */ virtual bool IsBusy() const = 0; @@ -383,6 +449,8 @@ public: /** Runs the given javascript code. + @note When using wxWEB_VIEW_BACKEND_IE you must wait for the current + page to finish loading before calling RunScript(). */ virtual void RunScript(const wxString& javascript) = 0; @@ -398,6 +466,8 @@ public: @param html The string that contains the HTML data to display. @param baseUrl URL assigned to the HTML data, to be used to resolve relative paths, for instance. + @note When using wxWEB_VIEW_BACKEND_IE you must wait for the current + page to finish loading before calling SetPage(). */ virtual void SetPage(const wxString& html, const wxString& baseUrl) = 0; @@ -456,6 +526,27 @@ public: */ virtual void Paste() = 0; + /** + @name Context Menu + */ + + /** + Enable or disable the right click context menu. + + By default the standard context menu is enabled, this method can be + used to disable it or re-enable it later. + + @since 2.9.5 + */ + virtual void EnableContextMenu(bool enable = true); + + /** + Returns @true if a context menu will be shown on right click. + + @since 2.9.5 + */ + virtual bool IsContextMenuEnabled() const; + /** @name History */ @@ -572,6 +663,30 @@ public: */ virtual void Undo() = 0; + /** + @name Finding + */ + + /** + Finds a phrase on the current page and if found, the control will + scroll the phrase into view and select it. + @param text The phrase to search for. + @param flags The flags for the search. + @return If search phrase was not found in combination with the flags + then @c wxNOT_FOUND is returned. If called for the first time + with search phrase then the total number of results will be + returned. Then for every time its called with the same search + phrase it will return the number of the current match. + @note This function will restart the search if the flags + @c wxWEB_VIEW_FIND_ENTIRE_WORD or @c wxWEB_VIEW_FIND_MATCH_CASE + are changed, since this will require a new search. To reset the + search, for example reseting the highlights call the function + with an empty search phrase. This always returns @c wxNOT_FOUND + on the OSX WebKit backend. + @since 2.9.5 + */ + virtual long Find(const wxString& text, wxWebViewFindFlags flags = wxWEB_VIEW_FIND_DEFAULT) = 0; + /** @name Zoom */