/* This file is autogenerated. DO NOT CHANGE. All changes will be lost */

#ifndef QPROTOBUF_QTGUI_H
#define QPROTOBUF_QTGUI_H

#include <QtProtobuf/qprotobufmessage.h>
#include <QtProtobuf/qprotobufobject.h>
#include <QtProtobuf/qprotobuflazymessagepointer.h>

#include <QtCore/qbytearray.h>
#include <QtCore/qstring.h>
#include <QtProtobuf/qprotobufoneof.h>

#include <QtCore/qmetatype.h>
#include <QtCore/qlist.h>
#include <QtCore/qshareddata.h>

#include <memory>

#if defined(QT_SHARED) || !defined(QT_STATIC)
#  if defined(QT_BUILD_PROTOBUFQTGUITYPES_LIB)
#    define QPB_PROTOBUFQTGUITYPES_EXPORT Q_DECL_EXPORT
#  else
#    define QPB_PROTOBUFQTGUITYPES_EXPORT Q_DECL_IMPORT
#  endif
#else
#  define QPB_PROTOBUFQTGUITYPES_EXPORT
#endif

QT_BEGIN_NAMESPACE
namespace QtProtobufPrivate::QtGui {
class QRgba64;
using QRgba64Repeated = QList<QRgba64>;
class QColor;
using QColorRepeated = QList<QColor>;
class QMatrix4x4;
using QMatrix4x4Repeated = QList<QMatrix4x4>;
class QVector2D;
using QVector2DRepeated = QList<QVector2D>;
class QVector3D;
using QVector3DRepeated = QList<QVector3D>;
class QVector4D;
using QVector4DRepeated = QList<QVector4D>;
class QTransform;
using QTransformRepeated = QList<QTransform>;
class QQuaternion;
using QQuaternionRepeated = QList<QQuaternion>;
class QImage;
using QImageRepeated = QList<QImage>;

class QRgba64_QtProtobufData;
class QPB_PROTOBUFQTGUITYPES_EXPORT QRgba64 : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QRgba64)
    Q_PROPERTY(QtProtobuf::uint64 rgba64 READ rgba64 WRITE setRgba64 SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        Rgba64ProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QRgba64();
    ~QRgba64();
    QRgba64(const QRgba64 &other);
    QRgba64 &operator =(const QRgba64 &other);
    QRgba64(QRgba64 &&other) noexcept;
    QRgba64 &operator =(QRgba64 &&other) noexcept;
    bool operator ==(const QRgba64 &other) const;
    bool operator !=(const QRgba64 &other) const;

    QtProtobuf::uint64 rgba64() const;
    void setRgba64(const QtProtobuf::uint64 &rgba64);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QRgba64_QtProtobufData> dptr;
};

class QColor_QtProtobufData;
class QPB_PROTOBUFQTGUITYPES_EXPORT QColor : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QColor)
    Q_PROPERTY(QtProtobufPrivate::QtGui::QRgba64 *rgba64 READ rgba64_p WRITE setRgba64_p)
    Q_PROPERTY(bool hasRgba64 READ hasRgba64)
    Q_PROPERTY(QtProtobuf::uint32 rgba READ rgba_p WRITE setRgba_p)
    Q_PROPERTY(bool hasRgba READ hasRgba)

public:
    enum QtProtobufFieldEnum {
        Rgba64ProtoFieldNumber = 1,
        RgbaProtoFieldNumber = 2,
    };
    Q_ENUM(QtProtobufFieldEnum)

    enum class ColorFields {
        UninitializedField = QtProtobuf::InvalidFieldNumber,
        Rgba64 = 1,
        Rgba = 2,
    };
    Q_ENUM(ColorFields)

    QColor();
    ~QColor();
    QColor(const QColor &other);
    QColor &operator =(const QColor &other);
    QColor(QColor &&other) noexcept;
    QColor &operator =(QColor &&other) noexcept;
    bool operator ==(const QColor &other) const;
    bool operator !=(const QColor &other) const;

    bool hasRgba64() const;
    QRgba64 &rgba64() const;

    bool hasRgba() const;
    QtProtobuf::uint32 rgba() const;
    ColorFields colorField() const;
    void setRgba64(const QRgba64 &rgba64);
    void setRgba(const QtProtobuf::uint32 &rgba);
    void clearColor();
    static void registerTypes();

private:
    QRgba64 *rgba64_p() const;
    QtProtobuf::uint32 rgba_p() const;
    void setRgba64_p(QRgba64 *rgba64);
    void setRgba_p(QtProtobuf::uint32 rgba);
    QExplicitlySharedDataPointer<QColor_QtProtobufData> dptr;
};

class QMatrix4x4_QtProtobufData;
class QPB_PROTOBUFQTGUITYPES_EXPORT QMatrix4x4 : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QMatrix4x4)
    Q_PROPERTY(QtProtobuf::floatList m READ m WRITE setM SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        MProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QMatrix4x4();
    ~QMatrix4x4();
    QMatrix4x4(const QMatrix4x4 &other);
    QMatrix4x4 &operator =(const QMatrix4x4 &other);
    QMatrix4x4(QMatrix4x4 &&other) noexcept;
    QMatrix4x4 &operator =(QMatrix4x4 &&other) noexcept;
    bool operator ==(const QMatrix4x4 &other) const;
    bool operator !=(const QMatrix4x4 &other) const;

    QtProtobuf::floatList m() const;
    QtProtobuf::floatList &m();
    void setM(const QtProtobuf::floatList &m);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QMatrix4x4_QtProtobufData> dptr;
};

class QVector2D_QtProtobufData;
class QPB_PROTOBUFQTGUITYPES_EXPORT QVector2D : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QVector2D)
    Q_PROPERTY(float xPos READ xPos WRITE setXPos SCRIPTABLE true)
    Q_PROPERTY(float yPos READ yPos WRITE setYPos SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        XPosProtoFieldNumber = 1,
        YPosProtoFieldNumber = 2,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QVector2D();
    ~QVector2D();
    QVector2D(const QVector2D &other);
    QVector2D &operator =(const QVector2D &other);
    QVector2D(QVector2D &&other) noexcept;
    QVector2D &operator =(QVector2D &&other) noexcept;
    bool operator ==(const QVector2D &other) const;
    bool operator !=(const QVector2D &other) const;

    float xPos() const;

    float yPos() const;
    void setXPos(const float &xPos);
    void setYPos(const float &yPos);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QVector2D_QtProtobufData> dptr;
};

class QVector3D_QtProtobufData;
class QPB_PROTOBUFQTGUITYPES_EXPORT QVector3D : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QVector3D)
    Q_PROPERTY(float xPos READ xPos WRITE setXPos SCRIPTABLE true)
    Q_PROPERTY(float yPos READ yPos WRITE setYPos SCRIPTABLE true)
    Q_PROPERTY(float zPos READ zPos WRITE setZPos SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        XPosProtoFieldNumber = 1,
        YPosProtoFieldNumber = 2,
        ZPosProtoFieldNumber = 3,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QVector3D();
    ~QVector3D();
    QVector3D(const QVector3D &other);
    QVector3D &operator =(const QVector3D &other);
    QVector3D(QVector3D &&other) noexcept;
    QVector3D &operator =(QVector3D &&other) noexcept;
    bool operator ==(const QVector3D &other) const;
    bool operator !=(const QVector3D &other) const;

    float xPos() const;

    float yPos() const;

    float zPos() const;
    void setXPos(const float &xPos);
    void setYPos(const float &yPos);
    void setZPos(const float &zPos);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QVector3D_QtProtobufData> dptr;
};

class QVector4D_QtProtobufData;
class QPB_PROTOBUFQTGUITYPES_EXPORT QVector4D : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QVector4D)
    Q_PROPERTY(float xPos READ xPos WRITE setXPos SCRIPTABLE true)
    Q_PROPERTY(float yPos READ yPos WRITE setYPos SCRIPTABLE true)
    Q_PROPERTY(float zPos READ zPos WRITE setZPos SCRIPTABLE true)
    Q_PROPERTY(float wPos READ wPos WRITE setWPos SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        XPosProtoFieldNumber = 1,
        YPosProtoFieldNumber = 2,
        ZPosProtoFieldNumber = 3,
        WPosProtoFieldNumber = 4,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QVector4D();
    ~QVector4D();
    QVector4D(const QVector4D &other);
    QVector4D &operator =(const QVector4D &other);
    QVector4D(QVector4D &&other) noexcept;
    QVector4D &operator =(QVector4D &&other) noexcept;
    bool operator ==(const QVector4D &other) const;
    bool operator !=(const QVector4D &other) const;

    float xPos() const;

    float yPos() const;

    float zPos() const;

    float wPos() const;
    void setXPos(const float &xPos);
    void setYPos(const float &yPos);
    void setZPos(const float &zPos);
    void setWPos(const float &wPos);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QVector4D_QtProtobufData> dptr;
};

class QTransform_QtProtobufData;
class QPB_PROTOBUFQTGUITYPES_EXPORT QTransform : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QTransform)
    Q_PROPERTY(QtProtobuf::doubleList m READ m WRITE setM SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        MProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QTransform();
    ~QTransform();
    QTransform(const QTransform &other);
    QTransform &operator =(const QTransform &other);
    QTransform(QTransform &&other) noexcept;
    QTransform &operator =(QTransform &&other) noexcept;
    bool operator ==(const QTransform &other) const;
    bool operator !=(const QTransform &other) const;

    QtProtobuf::doubleList m() const;
    QtProtobuf::doubleList &m();
    void setM(const QtProtobuf::doubleList &m);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QTransform_QtProtobufData> dptr;
};

class QQuaternion_QtProtobufData;
class QPB_PROTOBUFQTGUITYPES_EXPORT QQuaternion : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QQuaternion)
    Q_PROPERTY(float scalar READ scalar WRITE setScalar SCRIPTABLE true)
    Q_PROPERTY(float x READ x WRITE setX SCRIPTABLE true)
    Q_PROPERTY(float y READ y WRITE setY SCRIPTABLE true)
    Q_PROPERTY(float z READ z WRITE setZ SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        ScalarProtoFieldNumber = 1,
        XProtoFieldNumber = 2,
        YProtoFieldNumber = 3,
        ZProtoFieldNumber = 4,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QQuaternion();
    ~QQuaternion();
    QQuaternion(const QQuaternion &other);
    QQuaternion &operator =(const QQuaternion &other);
    QQuaternion(QQuaternion &&other) noexcept;
    QQuaternion &operator =(QQuaternion &&other) noexcept;
    bool operator ==(const QQuaternion &other) const;
    bool operator !=(const QQuaternion &other) const;

    float scalar() const;

    float x() const;

    float y() const;

    float z() const;
    void setScalar(const float &scalar);
    void setX(const float &x);
    void setY(const float &y);
    void setZ(const float &z);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QQuaternion_QtProtobufData> dptr;
};

class QImage_QtProtobufData;
class QPB_PROTOBUFQTGUITYPES_EXPORT QImage : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(QImage)
    Q_PROPERTY(QByteArray data READ data WRITE setData SCRIPTABLE true)
    Q_PROPERTY(QString format READ format WRITE setFormat SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        DataProtoFieldNumber = 1,
        FormatProtoFieldNumber = 2,
    };
    Q_ENUM(QtProtobufFieldEnum)

    QImage();
    ~QImage();
    QImage(const QImage &other);
    QImage &operator =(const QImage &other);
    QImage(QImage &&other) noexcept;
    QImage &operator =(QImage &&other) noexcept;
    bool operator ==(const QImage &other) const;
    bool operator !=(const QImage &other) const;

    QByteArray data() const;

    QString format() const;
    void setData(const QByteArray &data);
    void setFormat(const QString &format);
    static void registerTypes();

private:
    QExplicitlySharedDataPointer<QImage_QtProtobufData> dptr;
};
} // namespace QtProtobufPrivate::QtGui
QT_END_NAMESPACE

Q_DECLARE_METATYPE(QtProtobufPrivate::QtGui::QRgba64)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtGui::QColor)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtGui::QMatrix4x4)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtGui::QVector2D)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtGui::QVector3D)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtGui::QVector4D)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtGui::QTransform)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtGui::QQuaternion)
Q_DECLARE_METATYPE(QtProtobufPrivate::QtGui::QImage)
#endif // QPROTOBUF_QTGUI_H
