// qwebpage.sip generated by MetaSIP on Fri Apr 16 11:32:08 2010
//
// This file is part of the QtWebKit Python extension module.
//
// Copyright (c) 2010 Riverbank Computing Limited <info@riverbankcomputing.com>
// 
// This file is part of PyQt.
// 
// This file may be used under the terms of the GNU General Public
// License versions 2.0 or 3.0 as published by the Free Software
// Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
// included in the packaging of this file.  Alternatively you may (at
// your option) use any later version of the GNU General Public
// License if such license has been publicly approved by Riverbank
// Computing Limited (or its successors, if any) and the KDE Free Qt
// Foundation. In addition, as a special exception, Riverbank gives you
// certain additional rights. These rights are described in the Riverbank
// GPL Exception version 1.1, which can be found in the file
// GPL_EXCEPTION.txt in this package.
// 
// Please review the following information to ensure GNU General
// Public Licensing requirements will be met:
// http://trolltech.com/products/qt/licenses/licensing/opensource/. If
// you are unsure which license is appropriate for your use, please
// review the following information:
// http://trolltech.com/products/qt/licenses/licensing/licensingoverview
// or contact the sales department at sales@riverbankcomputing.com.
// 
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.


%If (Qt_4_4_0 -)
%ModuleCode
#include <qwebpage.h>
%End
%End

%If (Qt_4_4_0 -)

class QWebPage : QObject
{

%TypeHeaderCode
#include <qwebpage.h>
%End

public:
    enum NavigationType
    {
        NavigationTypeLinkClicked,
        NavigationTypeFormSubmitted,
        NavigationTypeBackOrForward,
        NavigationTypeReload,
        NavigationTypeFormResubmitted,
        NavigationTypeOther,
    };

    enum WebAction
    {
        NoWebAction,
        OpenLink,
        OpenLinkInNewWindow,
        OpenFrameInNewWindow,
        DownloadLinkToDisk,
        CopyLinkToClipboard,
        OpenImageInNewWindow,
        DownloadImageToDisk,
        CopyImageToClipboard,
        Back,
        Forward,
        Stop,
        Reload,
        Cut,
        Copy,
        Paste,
        Undo,
        Redo,
        MoveToNextChar,
        MoveToPreviousChar,
        MoveToNextWord,
        MoveToPreviousWord,
        MoveToNextLine,
        MoveToPreviousLine,
        MoveToStartOfLine,
        MoveToEndOfLine,
        MoveToStartOfBlock,
        MoveToEndOfBlock,
        MoveToStartOfDocument,
        MoveToEndOfDocument,
        SelectNextChar,
        SelectPreviousChar,
        SelectNextWord,
        SelectPreviousWord,
        SelectNextLine,
        SelectPreviousLine,
        SelectStartOfLine,
        SelectEndOfLine,
        SelectStartOfBlock,
        SelectEndOfBlock,
        SelectStartOfDocument,
        SelectEndOfDocument,
        DeleteStartOfWord,
        DeleteEndOfWord,
        SetTextDirectionDefault,
        SetTextDirectionLeftToRight,
        SetTextDirectionRightToLeft,
        ToggleBold,
        ToggleItalic,
        ToggleUnderline,
        InspectElement,
%If (Qt_4_5_0 -)
        InsertParagraphSeparator,
%End
%If (Qt_4_5_0 -)
        InsertLineSeparator,
%End
%If (Qt_4_5_0 -)
        SelectAll,
%End
%If (Qt_4_6_0 -)
        ReloadAndBypassCache,
%End
%If (Qt_4_6_0 -)
        PasteAndMatchStyle,
%End
%If (Qt_4_6_0 -)
        RemoveFormat,
%End
%If (Qt_4_6_0 -)
        ToggleStrikethrough,
%End
%If (Qt_4_6_0 -)
        ToggleSubscript,
%End
%If (Qt_4_6_0 -)
        ToggleSuperscript,
%End
%If (Qt_4_6_0 -)
        InsertUnorderedList,
%End
%If (Qt_4_6_0 -)
        InsertOrderedList,
%End
%If (Qt_4_6_0 -)
        Indent,
%End
%If (Qt_4_6_0 -)
        Outdent,
%End
%If (Qt_4_6_0 -)
        AlignCenter,
%End
%If (Qt_4_6_0 -)
        AlignJustified,
%End
%If (Qt_4_6_0 -)
        AlignLeft,
%End
%If (Qt_4_6_0 -)
        AlignRight,
%End
    };

    enum FindFlag
    {
        FindBackward,
        FindCaseSensitively,
        FindWrapsAroundDocument,
%If (Qt_4_6_0 -)
        HighlightAllOccurrences,
%End
    };

    typedef QFlags<QWebPage::FindFlag> FindFlags;

    enum LinkDelegationPolicy
    {
        DontDelegateLinks,
        DelegateExternalLinks,
        DelegateAllLinks,
    };

    enum WebWindowType
    {
        WebBrowserWindow,
        WebModalDialog,
    };

    explicit QWebPage(QObject *parent /TransferThis/ = 0);
    virtual ~QWebPage();
    QWebFrame *mainFrame() const;
    QWebFrame *currentFrame() const;
    QWebHistory *history() const;
    QWebSettings *settings() const;
    void setView(QWidget *);
    QWidget *view() const;
    bool isModified() const;
    QUndoStack *undoStack() const;
    void setNetworkAccessManager(QNetworkAccessManager *);
    QNetworkAccessManager *networkAccessManager() const;
    void setPluginFactory(QWebPluginFactory * /KeepReference/);
    QWebPluginFactory *pluginFactory() const;
    quint64 totalBytes() const;
    quint64 bytesReceived() const;
    QString selectedText() const;
    QAction *action(QWebPage::WebAction) const;
    virtual void triggerAction(QWebPage::WebAction, bool checked = false);
    QSize viewportSize() const;
    void setViewportSize(const QSize &) const;
    virtual bool event(QEvent *);
    bool focusNextPrevChild(bool);
    QVariant inputMethodQuery(Qt::InputMethodQuery) const;
    bool findText(const QString &, QFlags<QWebPage::FindFlag> options = 0);
    void setForwardUnsupportedContent(bool);
    bool forwardUnsupportedContent() const;
    void setLinkDelegationPolicy(QWebPage::LinkDelegationPolicy);
    QWebPage::LinkDelegationPolicy linkDelegationPolicy() const;
    void setPalette(const QPalette &);
    QPalette palette() const;
    bool swallowContextMenuEvent(QContextMenuEvent *);
    void updatePositionDependentActions(const QPoint &);

    enum Extension
    {
%If (Qt_4_5_0 -)
        ChooseMultipleFilesExtension,
%End
    };

    class ExtensionOption
    {

%TypeHeaderCode
#include <qwebpage.h>
%End
    };

    class ExtensionReturn
    {

%TypeHeaderCode
#include <qwebpage.h>
%End
    };

    virtual bool extension(QWebPage::Extension, const QWebPage::ExtensionOption *option = 0, QWebPage::ExtensionReturn *output = 0);
    virtual bool supportsExtension(QWebPage::Extension) const;

signals:
    void loadFinished(bool);
    void loadProgress(int);
    void loadStarted();
    void linkHovered(const QString &, const QString &, const QString &);
    void statusBarMessage(const QString &);
    void selectionChanged();
    void frameCreated(QWebFrame *);
    void geometryChangeRequested(const QRect &);
    void repaintRequested(const QRect &);
    void scrollRequested(int, int, const QRect &);
    void windowCloseRequested();
    void printRequested(QWebFrame *);
    void linkClicked(const QUrl &);
    void toolBarVisibilityChangeRequested(bool);
    void statusBarVisibilityChangeRequested(bool);
    void menuBarVisibilityChangeRequested(bool);
    void unsupportedContent(QNetworkReply *);
    void downloadRequested(const QNetworkRequest &);
    void microFocusChanged();

protected:
    virtual QWebPage *createWindow(QWebPage::WebWindowType);
    virtual QObject *createPlugin(const QString &, const QUrl &, const QStringList &, const QStringList &);
    virtual bool acceptNavigationRequest(QWebFrame *, const QNetworkRequest &, QWebPage::NavigationType);
    virtual QString chooseFile(QWebFrame *, const QString &);
    virtual void javaScriptAlert(QWebFrame *, const QString &);
    virtual bool javaScriptConfirm(QWebFrame *, const QString &);
    virtual bool javaScriptPrompt(QWebFrame *originatingFrame, const QString &msg, const QString &defaultValue, QString *result /Out/) /API=QString:2 - /;
    virtual bool javaScriptPrompt(QWebFrame *, const QString &, const QString &, QString * /Constrained/) /API=QString: - 2/;
    virtual void javaScriptConsoleMessage(const QString &, int, const QString &);
    virtual QString userAgentForUrl(const QUrl &) const;

public:
%If (Qt_4_5_0 -)
    void setContentEditable(bool);
%End
%If (Qt_4_5_0 -)
    bool isContentEditable() const;
%End
%If (Qt_4_5_0 -)
    QMenu *createStandardContextMenu() /Factory/;
%End
%If (Qt_4_5_0 -)

    class ChooseMultipleFilesExtensionOption : QWebPage::ExtensionOption
    {

%TypeHeaderCode
#include <qwebpage.h>
%End

    public:
        QWebFrame *parentFrame;
        QStringList suggestedFileNames;
    };

%End
%If (Qt_4_5_0 -)

    class ChooseMultipleFilesExtensionReturn : QWebPage::ExtensionReturn
    {

%TypeHeaderCode
#include <qwebpage.h>
%End

    public:
        QStringList fileNames;
    };

%End

signals:
%If (Qt_4_5_0 -)
    void contentsChanged();
%End
%If (Qt_4_5_0 -)
    void databaseQuotaExceeded(QWebFrame *, QString);
%End
%If (Qt_4_5_0 -)
    void saveFrameStateRequested(QWebFrame *, QWebHistoryItem *);
%End
%If (Qt_4_5_0 -)
    void restoreFrameStateRequested(QWebFrame *);
%End

public:
%If (Qt_4_6_0 -)
    QWebFrame *frameAt(const QPoint &) const;
%End
%If (Qt_4_6_0 -)
    QSize preferredContentsSize() const;
%End
%If (Qt_4_6_0 -)
    void setPreferredContentsSize(const QSize &) const;
%End

public slots:
%If (Qt_4_6_0 -)
    bool shouldInterruptJavaScript();
%End
};

%End
%If (Qt_4_4_0 -)
QFlags<QWebPage::FindFlag> operator|(QWebPage::FindFlag, QFlags<QWebPage::FindFlag>);
%End
