// qscriptvalue.sip generated by MetaSIP on Fri Feb 10 10:35:13 2012
//
// This file is part of the QtScript Python extension module.
//
// Copyright (c) 2011 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.
// 
// If you are unsure which license is appropriate for your use, please
// 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 <qscriptvalue.h>
%End
%End

%If (Qt_4_3_0 -)
typedef QList<QScriptValue> QScriptValueList;
%End
%If (Qt_4_3_0 -)
typedef double qsreal;
%End
%If (Qt_4_3_0 -)

class QScriptValue
{
%TypeHeaderCode
#include <qscriptvalue.h>
%End

public:
    enum ResolveFlag
    {
        ResolveLocal,
        ResolvePrototype,
        ResolveScope,
        ResolveFull,
    };

    typedef QFlags<QScriptValue::ResolveFlag> ResolveFlags;

    enum PropertyFlag
    {
        ReadOnly,
        Undeletable,
        SkipInEnumeration,
        PropertyGetter,
        PropertySetter,
        QObjectMember,
        KeepExistingFlags,
        UserRange,
    };

    typedef QFlags<QScriptValue::PropertyFlag> PropertyFlags;

    enum SpecialValue
    {
        NullValue,
        UndefinedValue,
    };

    QScriptValue();
    QScriptValue(const QScriptValue &other);
%If (Qt_4_5_0 -)
    QScriptValue(QScriptValue::SpecialValue value /Constrained/);
%End
    QScriptValue(QScriptEngine *engine, QScriptValue::SpecialValue val /Constrained/);
%If (Qt_4_5_0 -)
    QScriptValue(bool value /Constrained/);
%End
    QScriptValue(QScriptEngine *engine, bool val /Constrained/);
%If (Qt_4_5_0 -)
    QScriptValue(int value /Constrained/);
%End
    QScriptValue(QScriptEngine *engine, int val /Constrained/);
%If (Qt_4_5_0 -)
    QScriptValue(qsreal value /Constrained/);
%End
    QScriptValue(QScriptEngine *engine, qsreal val /Constrained/);
%If (Qt_4_5_0 -)
    QScriptValue(const QString &value);
%End
    QScriptValue(QScriptEngine *engine, const QString &val);
    ~QScriptValue();
    QScriptEngine *engine() const;
    bool isValid() const;
%If (Qt_4_5_0 -)
    bool isBool() const;
%End
    bool isBoolean() const;
    bool isNumber() const;
    bool isFunction() const;
    bool isNull() const;
    bool isString() const;
    bool isUndefined() const;
    bool isVariant() const;
    bool isQObject() const;
    bool isQMetaObject() const;
    bool isObject() const;
    bool isDate() const;
    bool isRegExp() const;
    bool isArray() const;
    bool isError() const;
    QString toString() const;
    qsreal toNumber() const;
%If (Qt_4_5_0 -)
    bool toBool() const;
%End
    bool toBoolean() const;
    qsreal toInteger() const;
    qint32 toInt32() const;
    quint32 toUInt32() const;
    quint16 toUInt16() const;
    QVariant toVariant() const;
    QObject *toQObject() const;
    const QMetaObject *toQMetaObject() const;
    QScriptValue toObject() const;
    QDateTime toDateTime() const;
    QRegExp toRegExp() const;
    bool instanceOf(const QScriptValue &ctor) const;
    bool lessThan(const QScriptValue &other) const;
    bool equals(const QScriptValue &other) const;
    bool strictlyEquals(const QScriptValue &other) const;
    QScriptValue prototype() const;
    void setPrototype(const QScriptValue &prototype);
    QScriptValue property(const QString &name, const QFlags<QScriptValue::ResolveFlag> &mode = QScriptValue::ResolvePrototype) const;
    void setProperty(const QString &name, const QScriptValue &value, const QFlags<QScriptValue::PropertyFlag> &flags = QScriptValue::KeepExistingFlags);
%If (Qt_4_4_0 -)
    QScriptValue property(const QScriptString &name, const QFlags<QScriptValue::ResolveFlag> &mode = QScriptValue::ResolvePrototype) const;
%End
%If (Qt_4_4_0 -)
    void setProperty(const QScriptString &name, const QScriptValue &value, const QFlags<QScriptValue::PropertyFlag> &flags = QScriptValue::KeepExistingFlags);
%End
    QScriptValue property(quint32 arrayIndex, const QFlags<QScriptValue::ResolveFlag> &mode = QScriptValue::ResolvePrototype) const;
    void setProperty(quint32 arrayIndex, const QScriptValue &value, const QFlags<QScriptValue::PropertyFlag> &flags = QScriptValue::KeepExistingFlags);
    QFlags<QScriptValue::PropertyFlag> propertyFlags(const QString &name, const QFlags<QScriptValue::ResolveFlag> &mode = QScriptValue::ResolvePrototype) const;
%If (Qt_4_4_0 -)
    QFlags<QScriptValue::PropertyFlag> propertyFlags(const QScriptString &name, const QFlags<QScriptValue::ResolveFlag> &mode = QScriptValue::ResolvePrototype) const;
%End
    QScriptValue call(const QScriptValue &thisObject = QScriptValue(), const QScriptValueList &args = QScriptValueList());
    QScriptValue call(const QScriptValue &thisObject, const QScriptValue &arguments);
    QScriptValue construct(const QScriptValueList &args = QScriptValueList());
    QScriptValue construct(const QScriptValue &arguments);
%If (Qt_4_4_0 -)
    QScriptValue data() const;
%End
%If (Qt_4_4_0 -)
    void setData(const QScriptValue &data);
%End
%If (Qt_4_4_0 -)
    QScriptClass *scriptClass() const;
%End
%If (Qt_4_4_0 -)
    void setScriptClass(QScriptClass *scriptClass /KeepReference/);
%End
};

%End
%If (Qt_4_3_0 -)
QFlags<QScriptValue::ResolveFlag> operator|(QScriptValue::ResolveFlag f1, QFlags<QScriptValue::ResolveFlag> f2);
%End
%If (Qt_4_3_0 -)
QFlags<QScriptValue::PropertyFlag> operator|(QScriptValue::PropertyFlag f1, QFlags<QScriptValue::PropertyFlag> f2);
%End
