]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/webview.h
Don't include wxUniversal configurations in MSVC project files.
[wxWidgets.git] / interface / wx / webview.h
index d74c64cb88de954f621efbc1d281fe1d8cc728d6..933b45b98c2ab4a8abcfa7db636cc1ba15ca739a 100644 (file)
@@ -93,21 +93,6 @@ enum wxWebViewFindFlags
     wxWEB_VIEW_FIND_DEFAULT =          0
 };
 
-/**
- * List of available backends for wxWebView
- */
-enum wxWebViewBackend
-{
-    /** Value that may be passed to wxWebView to let it pick an appropriate
-     * engine for the current platform*/
-    wxWEB_VIEW_BACKEND_DEFAULT,
-
-    /** The WebKit web engine */
-    wxWEB_VIEW_BACKEND_WEBKIT,
-
-    /** Use Microsoft Internet Explorer as web engine */
-    wxWEB_VIEW_BACKEND_IE
-};
 
 /**
     @class wxWebViewHistoryItem
@@ -140,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
 
@@ -290,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<wxWebViewFactory> factory);
 
     /**
         Get the title of the current web page, or its URL/path if title is not
@@ -372,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;
 
@@ -487,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
     */