// qmetatype.sip generated by MetaSIP
//
// This file is part of the QtCore Python extension module.
//
// Copyright (c) 2016 Riverbank Computing Limited <info@riverbankcomputing.com>
// 
// This file is part of PyQt4.
// 
// This file may be used under the terms of the GNU General Public License
// version 3.0 as published by the Free Software Foundation and appearing in
// the file LICENSE included in the packaging of this file.  Please review the
// following information to ensure the GNU General Public License version 3.0
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
// 
// If you do not wish to use this file under the terms of the GPL version 3.0
// then you may purchase a commercial license.  For more information contact
// info@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.


class QMetaType
{
%TypeHeaderCode
#include <qmetatype.h>
%End

public:
    enum Type
    {
%If (Qt_5_0_0 -)
        UnknownType,
%End
        Void,
        Bool,
        Int,
        UInt,
        LongLong,
        ULongLong,
        Double,
        QChar,
        QVariantMap,
        QVariantList,
%If (Qt_4_5_0 -)
        QVariantHash,
%End
        QString,
        QStringList,
        QByteArray,
        QBitArray,
        QDate,
        QTime,
        QDateTime,
        QUrl,
        QLocale,
        QRect,
        QRectF,
        QSize,
        QSizeF,
        QLine,
        QLineF,
        QPoint,
        QPointF,
        QRegExp,
        LastCoreType,
        FirstGuiType,
        QFont,
        QPixmap,
        QBrush,
        QColor,
        QPalette,
        QIcon,
        QImage,
        QPolygon,
        QRegion,
        QBitmap,
        QCursor,
        QSizePolicy,
        QKeySequence,
        QPen,
        QTextLength,
        QTextFormat,
        QMatrix,
%If (Qt_4_3_0 -)
        QTransform,
%End
        VoidStar,
        Long,
        Short,
        Char,
        ULong,
        UShort,
        UChar,
        Float,
        QObjectStar,
%If (- Qt_5_0_0)
        QWidgetStar,
%End
%If (Qt_4_6_0 -)
        QMatrix4x4,
%End
%If (Qt_4_6_0 -)
        QVector2D,
%End
%If (Qt_4_6_0 -)
        QVector3D,
%End
%If (Qt_4_6_0 -)
        QVector4D,
%End
%If (Qt_4_6_0 -)
        QQuaternion,
%End
%If (Qt_4_7_0 -)
        QEasingCurve,
%End
%If (Qt_4_7_0 -)
        QVariant,
%End
%If (Qt_5_0_0 -)
        QUuid,
%End
%If (Qt_5_0_0 -)
        QModelIndex,
%End
%If (Qt_5_0_0 -)
        QPolygonF,
%End
%If (Qt_5_0_0 -)
        SChar,
%End
%If (Qt_5_0_0 -)
        QRegularExpression,
%End
%If (Qt_5_0_0 -)
        QJsonValue,
%End
%If (Qt_5_0_0 -)
        QJsonObject,
%End
%If (Qt_5_0_0 -)
        QJsonArray,
%End
%If (Qt_5_0_0 -)
        QJsonDocument,
%End
        User,
    };

    static int type(const char *typeName);
    static const char *typeName(int type);
    static bool isRegistered(int type);
%If (Qt_5_0_0 -)
    explicit QMetaType(const int type);
%End
%If (Qt_5_0_0 -)
    ~QMetaType();
%End
%If (Qt_5_0_0 -)

    enum TypeFlag
    {
        NeedsConstruction,
        NeedsDestruction,
        MovableType,
    };

%End
%If (Qt_5_0_0 -)
    typedef QFlags<QMetaType::TypeFlag> TypeFlags;
%End
%If (Qt_5_0_0 -)
    static QFlags<QMetaType::TypeFlag> typeFlags(int type);
%End
%If (Qt_5_0_0 -)
    bool isValid() const;
%End
%If (Qt_5_0_0 -)
    bool isRegistered() const;
%End
%If (Qt_5_0_0 -)
    QFlags<QMetaType::TypeFlag> flags() const;
%End
%If (Qt_5_0_0 -)
    static const QMetaObject *metaObjectForType(int type);
%End

private:
%If (Qt_5_0_0 -)
    QMetaType(const QMetaType &other);
%End
};

%If (Qt_5_0_0 -)
QFlags<QMetaType::TypeFlag> operator|(QMetaType::TypeFlag f1, QFlags<QMetaType::TypeFlag> f2);
%End
