1// qwebpage.sip generated by MetaSIP
2//
3// This file is part of the QtWebKitWidgets Python extension module.
4//
5// Copyright (c) 2021 Riverbank Computing Limited <info@riverbankcomputing.com>
6//
7// This file is part of PyQt5.
8//
9// This file may be used under the terms of the GNU General Public License
10// version 3.0 as published by the Free Software Foundation and appearing in
11// the file LICENSE included in the packaging of this file.  Please review the
12// following information to ensure the GNU General Public License version 3.0
13// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
14//
15// If you do not wish to use this file under the terms of the GPL version 3.0
16// then you may purchase a commercial license.  For more information contact
17// info@riverbankcomputing.com.
18//
19// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21
22
23class QWebPage : QObject
24{
25%TypeHeaderCode
26#include <qwebpage.h>
27%End
28
29public:
30    enum NavigationType
31    {
32        NavigationTypeLinkClicked,
33        NavigationTypeFormSubmitted,
34        NavigationTypeBackOrForward,
35        NavigationTypeReload,
36        NavigationTypeFormResubmitted,
37        NavigationTypeOther,
38    };
39
40    enum WebAction
41    {
42        NoWebAction,
43        OpenLink,
44        OpenLinkInNewWindow,
45        OpenFrameInNewWindow,
46        DownloadLinkToDisk,
47        CopyLinkToClipboard,
48        OpenImageInNewWindow,
49        DownloadImageToDisk,
50        CopyImageToClipboard,
51        Back,
52        Forward,
53        Stop,
54        Reload,
55        Cut,
56        Copy,
57        Paste,
58        Undo,
59        Redo,
60        MoveToNextChar,
61        MoveToPreviousChar,
62        MoveToNextWord,
63        MoveToPreviousWord,
64        MoveToNextLine,
65        MoveToPreviousLine,
66        MoveToStartOfLine,
67        MoveToEndOfLine,
68        MoveToStartOfBlock,
69        MoveToEndOfBlock,
70        MoveToStartOfDocument,
71        MoveToEndOfDocument,
72        SelectNextChar,
73        SelectPreviousChar,
74        SelectNextWord,
75        SelectPreviousWord,
76        SelectNextLine,
77        SelectPreviousLine,
78        SelectStartOfLine,
79        SelectEndOfLine,
80        SelectStartOfBlock,
81        SelectEndOfBlock,
82        SelectStartOfDocument,
83        SelectEndOfDocument,
84        DeleteStartOfWord,
85        DeleteEndOfWord,
86        SetTextDirectionDefault,
87        SetTextDirectionLeftToRight,
88        SetTextDirectionRightToLeft,
89        ToggleBold,
90        ToggleItalic,
91        ToggleUnderline,
92        InspectElement,
93        InsertParagraphSeparator,
94        InsertLineSeparator,
95        SelectAll,
96        ReloadAndBypassCache,
97        PasteAndMatchStyle,
98        RemoveFormat,
99        ToggleStrikethrough,
100        ToggleSubscript,
101        ToggleSuperscript,
102        InsertUnorderedList,
103        InsertOrderedList,
104        Indent,
105        Outdent,
106        AlignCenter,
107        AlignJustified,
108        AlignLeft,
109        AlignRight,
110        StopScheduledPageRefresh,
111        CopyImageUrlToClipboard,
112        OpenLinkInThisWindow,
113%If (Qt_5_2_0 -)
114        DownloadMediaToDisk,
115%End
116%If (Qt_5_2_0 -)
117        CopyMediaUrlToClipboard,
118%End
119%If (Qt_5_2_0 -)
120        ToggleMediaControls,
121%End
122%If (Qt_5_2_0 -)
123        ToggleMediaLoop,
124%End
125%If (Qt_5_2_0 -)
126        ToggleMediaPlayPause,
127%End
128%If (Qt_5_2_0 -)
129        ToggleMediaMute,
130%End
131%If (Qt_5_2_0 -)
132        ToggleVideoFullscreen,
133%End
134    };
135
136    enum FindFlag
137    {
138        FindBackward,
139        FindCaseSensitively,
140        FindWrapsAroundDocument,
141        HighlightAllOccurrences,
142%If (Qt_5_2_0 -)
143        FindAtWordBeginningsOnly,
144%End
145%If (Qt_5_2_0 -)
146        TreatMedialCapitalAsWordBeginning,
147%End
148%If (Qt_5_2_0 -)
149        FindBeginsInSelection,
150%End
151    };
152
153    typedef QFlags<QWebPage::FindFlag> FindFlags;
154
155    enum LinkDelegationPolicy
156    {
157        DontDelegateLinks,
158        DelegateExternalLinks,
159        DelegateAllLinks,
160    };
161
162    enum WebWindowType
163    {
164        WebBrowserWindow,
165        WebModalDialog,
166    };
167
168    explicit QWebPage(QObject *parent /TransferThis/ = 0);
169    virtual ~QWebPage();
170    QWebFrame *mainFrame() const;
171    QWebFrame *currentFrame() const;
172    QWebHistory *history() const;
173    QWebSettings *settings() const;
174    void setView(QWidget *view /KeepReference/);
175    QWidget *view() const;
176    bool isModified() const;
177    QUndoStack *undoStack() const;
178    void setNetworkAccessManager(QNetworkAccessManager *manager /KeepReference/);
179    QNetworkAccessManager *networkAccessManager() const;
180    void setPluginFactory(QWebPluginFactory *factory /KeepReference/);
181    QWebPluginFactory *pluginFactory() const;
182    quint64 totalBytes() const;
183    quint64 bytesReceived() const;
184    QString selectedText() const;
185    QAction *action(QWebPage::WebAction action) const;
186    virtual void triggerAction(QWebPage::WebAction action, bool checked = false);
187    QSize viewportSize() const;
188    void setViewportSize(const QSize &size) const;
189    virtual bool event(QEvent *);
190    bool focusNextPrevChild(bool next);
191    QVariant inputMethodQuery(Qt::InputMethodQuery property) const;
192    bool findText(const QString &subString, QFlags<QWebPage::FindFlag> options = 0);
193    void setForwardUnsupportedContent(bool forward);
194    bool forwardUnsupportedContent() const;
195    void setLinkDelegationPolicy(QWebPage::LinkDelegationPolicy policy);
196    QWebPage::LinkDelegationPolicy linkDelegationPolicy() const;
197    void setPalette(const QPalette &palette);
198    QPalette palette() const;
199    bool swallowContextMenuEvent(QContextMenuEvent *event);
200    void updatePositionDependentActions(const QPoint &pos);
201
202    enum Extension
203    {
204        ChooseMultipleFilesExtension,
205        ErrorPageExtension,
206    };
207
208    class ExtensionOption
209    {
210%TypeHeaderCode
211#include <qwebpage.h>
212%End
213    };
214
215    class ExtensionReturn
216    {
217%TypeHeaderCode
218#include <qwebpage.h>
219%End
220    };
221
222    virtual bool extension(QWebPage::Extension extension, const QWebPage::ExtensionOption *option = 0, QWebPage::ExtensionReturn *output = 0);
223%VirtualCatcherCode
224        const sipTypeDef *option_type = sipType_QWebPage_ExtensionOption;
225        const sipTypeDef *return_type = sipType_QWebPage_ExtensionReturn;
226
227        if (a0 == QWebPage::ChooseMultipleFilesExtension)
228        {
229            option_type = sipType_QWebPage_ChooseMultipleFilesExtensionOption;
230            return_type = sipType_QWebPage_ChooseMultipleFilesExtensionReturn;
231        }
232        else if (a0 == QWebPage::ErrorPageExtension)
233        {
234            option_type = sipType_QWebPage_ErrorPageExtensionOption;
235            return_type = sipType_QWebPage_ErrorPageExtensionReturn;
236        }
237
238        PyObject *res_obj = sipCallMethod(&sipIsErr, sipMethod, "FDD",
239                a0, sipType_QWebPage_Extension,
240                a1, option_type, NULL,
241                a2, return_type, NULL);
242
243        if (res_obj)
244        {
245            sipParseResult(&sipIsErr, sipMethod, res_obj, "b", &sipRes);
246            Py_DECREF(res_obj);
247        }
248        else
249        {
250            sipIsErr = 1;
251        }
252%End
253
254    virtual bool supportsExtension(QWebPage::Extension extension) const;
255
256signals:
257    void loadFinished(bool ok);
258    void loadProgress(int progress);
259    void loadStarted();
260    void linkHovered(const QString &link, const QString &title, const QString &textContent);
261    void statusBarMessage(const QString &text);
262    void selectionChanged();
263    void frameCreated(QWebFrame *frame);
264    void geometryChangeRequested(const QRect &geom);
265    void repaintRequested(const QRect &dirtyRect);
266    void scrollRequested(int dx, int dy, const QRect &scrollViewRect);
267    void windowCloseRequested();
268    void printRequested(QWebFrame *frame);
269    void linkClicked(const QUrl &url);
270    void toolBarVisibilityChangeRequested(bool visible);
271    void statusBarVisibilityChangeRequested(bool visible);
272    void menuBarVisibilityChangeRequested(bool visible);
273    void unsupportedContent(QNetworkReply *reply);
274    void downloadRequested(const QNetworkRequest &request);
275    void microFocusChanged();
276
277protected:
278    virtual QWebPage *createWindow(QWebPage::WebWindowType type);
279    virtual QObject *createPlugin(const QString &classid, const QUrl &url, const QStringList &paramNames, const QStringList &paramValues);
280    virtual bool acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, QWebPage::NavigationType type);
281    virtual QString chooseFile(QWebFrame *originatingFrame, const QString &oldFile);
282    virtual void javaScriptAlert(QWebFrame *originatingFrame, const QString &msg);
283    virtual bool javaScriptConfirm(QWebFrame *originatingFrame, const QString &msg);
284    virtual bool javaScriptPrompt(QWebFrame *originatingFrame, const QString &msg, const QString &defaultValue, QString *result /Out/);
285    virtual void javaScriptConsoleMessage(const QString &message, int lineNumber, const QString &sourceID);
286    virtual QString userAgentForUrl(const QUrl &url) const;
287
288public:
289    void setContentEditable(bool editable);
290    bool isContentEditable() const;
291    QMenu *createStandardContextMenu() /Factory/;
292
293    class ChooseMultipleFilesExtensionOption : QWebPage::ExtensionOption
294    {
295%TypeHeaderCode
296#include <qwebpage.h>
297%End
298
299    public:
300        QWebFrame *parentFrame;
301        QStringList suggestedFileNames;
302    };
303
304    class ChooseMultipleFilesExtensionReturn : QWebPage::ExtensionReturn
305    {
306%TypeHeaderCode
307#include <qwebpage.h>
308%End
309
310    public:
311        QStringList fileNames;
312    };
313
314signals:
315    void contentsChanged();
316    void databaseQuotaExceeded(QWebFrame *frame, QString databaseName);
317    void saveFrameStateRequested(QWebFrame *frame, QWebHistoryItem *item);
318    void restoreFrameStateRequested(QWebFrame *frame);
319
320public:
321    QWebFrame *frameAt(const QPoint &pos) const;
322    QSize preferredContentsSize() const;
323    void setPreferredContentsSize(const QSize &size) const;
324
325    enum ErrorDomain
326    {
327        QtNetwork,
328        Http,
329        WebKit,
330    };
331
332    class ErrorPageExtensionOption : QWebPage::ExtensionOption
333    {
334%TypeHeaderCode
335#include <qwebpage.h>
336%End
337
338    public:
339        QUrl url;
340        QWebFrame *frame;
341        QWebPage::ErrorDomain domain;
342        int error;
343        QString errorString;
344    };
345
346    class ErrorPageExtensionReturn : QWebPage::ExtensionReturn
347    {
348%TypeHeaderCode
349#include <qwebpage.h>
350%End
351
352    public:
353        ErrorPageExtensionReturn();
354        QString contentType;
355        QString encoding;
356        QUrl baseUrl;
357        QByteArray content;
358    };
359
360    virtual bool shouldInterruptJavaScript();
361
362    enum PermissionPolicy
363    {
364        PermissionUnknown,
365        PermissionGrantedByUser,
366        PermissionDeniedByUser,
367    };
368
369    enum Feature
370    {
371        Notifications,
372        Geolocation,
373    };
374
375    class ViewportAttributes
376    {
377%TypeHeaderCode
378#include <qwebpage.h>
379%End
380
381    public:
382        ViewportAttributes();
383        ViewportAttributes(const QWebPage::ViewportAttributes &other);
384        ~ViewportAttributes();
385        qreal initialScaleFactor() const;
386        qreal minimumScaleFactor() const;
387        qreal maximumScaleFactor() const;
388        qreal devicePixelRatio() const;
389        bool isUserScalable() const;
390        bool isValid() const;
391        QSizeF size() const;
392    };
393
394    bool hasSelection() const;
395    QString selectedHtml() const;
396    QWebPage::ViewportAttributes viewportAttributesForSize(const QSize &availableSize) const;
397    void setActualVisibleContentRect(const QRect &rect) const;
398    void setFeaturePermission(QWebFrame *frame, QWebPage::Feature feature, QWebPage::PermissionPolicy policy);
399    QStringList supportedContentTypes() const;
400    bool supportsContentType(const QString &mimeType) const;
401
402signals:
403    void applicationCacheQuotaExceeded(QWebSecurityOrigin *origin, quint64 defaultOriginQuota, quint64 totalSpaceNeeded);
404    void viewportChangeRequested();
405    void featurePermissionRequested(QWebFrame *frame, QWebPage::Feature feature);
406    void featurePermissionRequestCanceled(QWebFrame *frame, QWebPage::Feature feature);
407
408public:
409%If (Qt_5_2_0 -)
410
411    enum VisibilityState
412    {
413        VisibilityStateVisible,
414        VisibilityStateHidden,
415        VisibilityStatePrerender,
416        VisibilityStateUnloaded,
417    };
418
419%End
420%If (Qt_5_2_0 -)
421    QWebPage::VisibilityState visibilityState() const;
422%End
423%If (Qt_5_2_0 -)
424    void setVisibilityState(QWebPage::VisibilityState);
425%End
426};
427
428QFlags<QWebPage::FindFlag> operator|(QWebPage::FindFlag f1, QFlags<QWebPage::FindFlag> f2);
429