// qwizard.sip generated by MetaSIP on Fri Apr 16 11:32:08 2010
//
// This file is part of the QtGui 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_3_0 -)
%ModuleCode
#include <qwizard.h>
%End
%End

%If (Qt_4_3_0 -)

class QWizard : QDialog
{

%TypeHeaderCode
#include <qwizard.h>
%End

public:
    enum WizardButton
    {
        BackButton,
        NextButton,
        CommitButton,
        FinishButton,
        CancelButton,
        HelpButton,
        CustomButton1,
        CustomButton2,
        CustomButton3,
        Stretch,
    };

    enum WizardPixmap
    {
        WatermarkPixmap,
        LogoPixmap,
        BannerPixmap,
        BackgroundPixmap,
    };

    enum WizardStyle
    {
        ClassicStyle,
        ModernStyle,
        MacStyle,
        AeroStyle,
    };

    enum WizardOption
    {
        IndependentPages,
        IgnoreSubTitles,
        ExtendedWatermarkPixmap,
        NoDefaultButton,
        NoBackButtonOnStartPage,
        NoBackButtonOnLastPage,
        DisabledBackButtonOnLastPage,
        HaveNextButtonOnLastPage,
        HaveFinishButtonOnEarlyPages,
        NoCancelButton,
        CancelButtonOnLeft,
        HaveHelpButton,
        HelpButtonOnRight,
        HaveCustomButton1,
        HaveCustomButton2,
        HaveCustomButton3,
    };

    typedef QFlags<QWizard::WizardOption> WizardOptions;
    QWizard(QWidget *parent /TransferThis/ = 0, Qt::WindowFlags flags = 0);
    virtual ~QWizard();
    int addPage(QWizardPage * /Transfer/);
    void setPage(int, QWizardPage * /Transfer/);
    QWizardPage *page(int) const;
    bool hasVisitedPage(int) const;
    QList<int> visitedPages() const;
    void setStartId(int);
    int startId() const;
    QWizardPage *currentPage() const;
    int currentId() const;
    virtual bool validateCurrentPage();
    virtual int nextId() const;
    void setField(const QString &, const QVariant &);
    QVariant field(const QString &) const;
    void setWizardStyle(QWizard::WizardStyle);
    QWizard::WizardStyle wizardStyle() const;
    void setOption(QWizard::WizardOption, bool on = true);
    bool testOption(QWizard::WizardOption) const;
    void setOptions(QFlags<QWizard::WizardOption>);
    QFlags<QWizard::WizardOption> options() const;
    void setButtonText(QWizard::WizardButton, const QString &);
    QString buttonText(QWizard::WizardButton) const;
    void setButtonLayout(const QList<QWizard::WizardButton> &);
    void setButton(QWizard::WizardButton, QAbstractButton * /Transfer/);
    QAbstractButton *button(QWizard::WizardButton) const /Transfer/;
    void setTitleFormat(Qt::TextFormat);
    Qt::TextFormat titleFormat() const;
    void setSubTitleFormat(Qt::TextFormat);
    Qt::TextFormat subTitleFormat() const;
    void setPixmap(QWizard::WizardPixmap, const QPixmap &);
    QPixmap pixmap(QWizard::WizardPixmap) const;
    void setDefaultProperty(const char *, const char *, const char *);
    virtual void setVisible(bool);
    virtual QSize sizeHint() const;

signals:
    void currentIdChanged(int);
    void helpRequested();
    void customButtonClicked(int);

public slots:
    void back();
    void next();
    void restart();

protected:
    virtual bool event(QEvent *);
    virtual void resizeEvent(QResizeEvent *);
    virtual void paintEvent(QPaintEvent *);
%If (WS_WIN)
    bool winEvent(MSG *message, long *result);
%End
    virtual void done(int);
    virtual void initializePage(int);
    virtual void cleanupPage(int);

public:
%If (Qt_4_5_0 -)
    void removePage(int);
%End
%If (Qt_4_5_0 -)
    QList<int> pageIds() const;
%End

private:
    QWizard(const QWizard &);
};

%End
%If (Qt_4_3_0 -)
QFlags<QWizard::WizardOption> operator|(QWizard::WizardOption, QFlags<QWizard::WizardOption>);
%End
%If (Qt_4_3_0 -)

class QWizardPage : QWidget
{

%TypeHeaderCode
#include <qwizard.h>
%End

public:
    QWizardPage(QWidget *parent /TransferThis/ = 0);
    void setTitle(const QString &);
    QString title() const;
    void setSubTitle(const QString &);
    QString subTitle() const;
    void setPixmap(QWizard::WizardPixmap, const QPixmap &);
    QPixmap pixmap(QWizard::WizardPixmap) const;
    void setFinalPage(bool);
    bool isFinalPage() const;
    void setCommitPage(bool);
    bool isCommitPage() const;
    void setButtonText(QWizard::WizardButton, const QString &);
    QString buttonText(QWizard::WizardButton) const;
    virtual void initializePage();
    virtual void cleanupPage();
    virtual bool validatePage();
    virtual bool isComplete() const;
    virtual int nextId() const;

signals:
    void completeChanged();

protected:
    void setField(const QString &, const QVariant &);
    QVariant field(const QString &) const;
    void registerField(const QString &, QWidget *, const char *property = 0, SIP_SIGNAL changedSignal = 0);
    QWizard *wizard() const;

private:
    QWizardPage(const QWizardPage &);
};

%End
%If (Qt_4_3_0 -)
// Mapped type for QList<QWizard::WizardButton>.
%MappedType QList<QWizard::WizardButton> /DocType="list-of-QWizard.WizardButton"/
{
%TypeHeaderCode
#include <qwizard.h>
%End

%ConvertFromTypeCode
    // Create the list.
    PyObject *l;

    if ((l = PyList_New(sipCpp->size())) == NULL)
        return NULL;

    // Set the list elements.
    for (int i = 0; i < sipCpp->size(); ++i)
    {
        QWizard::WizardButton e = sipCpp->at(i);
        PyObject *eobj;

        if ((eobj = sipConvertFromEnum(e, sipType_QWizard_WizardButton)) == NULL)
        {
            Py_DECREF(l);

            return NULL;
        }

        PyList_SET_ITEM(l, i, eobj);
    }

    return l;
%End

%ConvertToTypeCode
    // Check the type if that is all that is required.
    if (sipIsErr == NULL)
    {
        if (!PyList_Check(sipPy))
            return 0;

        for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i)
            if (PyObject_TypeCheck(PyList_GET_ITEM(sipPy, i), sipTypeAsPyTypeObject(sipType_QWizard_WizardButton)))
                return 0;

        return 1;
    }

    QList<QWizard::WizardButton> *ql = new QList<QWizard::WizardButton>;
 
    for (SIP_SSIZE_T i = 0; i < PyList_GET_SIZE(sipPy); ++i)
    {
        long l = SIPLong_AsLong(PyList_GET_ITEM(sipPy, i));
        ql->append(static_cast<QWizard::WizardButton>(l));
    }
 
    *sipCppPtr = ql;
 
    return sipGetState(sipTransferObj);
%End
};
%End
