/* 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 "protobufqtguitypes_exports.qpb.h"

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

#include <memory>


QT_BEGIN_NAMESPACE
namespace QtProtobufPrivate::QtGui {
class QRgba64;
using QRgba64Repeated = QList<QRgba64>;
namespace QRgba64_QtProtobufNested {
enum class QtProtobufFieldEnum;
} // namespace QRgba64_QtProtobufNested

class QColor;
using QColorRepeated = QList<QColor>;
namespace QColor_QtProtobufNested {
enum class QtProtobufFieldEnum;
enum class ColorFields;
} // namespace QColor_QtProtobufNested

class QMatrix4x4;
using QMatrix4x4Repeated = QList<QMatrix4x4>;
namespace QMatrix4x4_QtProtobufNested {
enum class QtProtobufFieldEnum;
} // namespace QMatrix4x4_QtProtobufNested

class QVector2D;
using QVector2DRepeated = QList<QVector2D>;
namespace QVector2D_QtProtobufNested {
enum class QtProtobufFieldEnum;
} // namespace QVector2D_QtProtobufNested

class QVector3D;
using QVector3DRepeated = QList<QVector3D>;
namespace QVector3D_QtProtobufNested {
enum class QtProtobufFieldEnum;
} // namespace QVector3D_QtProtobufNested

class QVector4D;
using QVector4DRepeated = QList<QVector4D>;
namespace QVector4D_QtProtobufNested {
enum class QtProtobufFieldEnum;
} // namespace QVector4D_QtProtobufNested

class QTransform;
using QTransformRepeated = QList<QTransform>;
namespace QTransform_QtProtobufNested {
enum class QtProtobufFieldEnum;
} // namespace QTransform_QtProtobufNested

class QQuaternion;
using QQuaternionRepeated = QList<QQuaternion>;
namespace QQuaternion_QtProtobufNested {
enum class QtProtobufFieldEnum;
} // namespace QQuaternion_QtProtobufNested

class QImage;
using QImageRepeated = QList<QImage>;
namespace QImage_QtProtobufNested {
enum class QtProtobufFieldEnum;
} // namespace QImage_QtProtobufNested


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:
    using QtProtobufFieldEnum = QRgba64_QtProtobufNested::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;
};
namespace QRgba64_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_PROTOBUFQTGUITYPES_EXPORT)

enum class QtProtobufFieldEnum {
    Rgba64ProtoFieldNumber = 1,
};
Q_ENUM_NS(QtProtobufFieldEnum)

} // namespace QRgba64_QtProtobufNested

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_p READ rgba64_p WRITE setRgba64_p SCRIPTABLE false)
    Q_PROPERTY(bool hasRgba64 READ hasRgba64)
    Q_PROPERTY(QtProtobuf::uint32 rgba READ rgba_p WRITE setRgba_p)
    Q_PROPERTY(bool hasRgba READ hasRgba)

public:
    using QtProtobufFieldEnum = QColor_QtProtobufNested::QtProtobufFieldEnum;
    using ColorFields = QColor_QtProtobufNested::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;
};
namespace QColor_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_PROTOBUFQTGUITYPES_EXPORT)

enum class QtProtobufFieldEnum {
    Rgba64ProtoFieldNumber = 1,
    RgbaProtoFieldNumber = 2,
};
Q_ENUM_NS(QtProtobufFieldEnum)

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

} // namespace QColor_QtProtobufNested

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:
    using QtProtobufFieldEnum = QMatrix4x4_QtProtobufNested::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;
};
namespace QMatrix4x4_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_PROTOBUFQTGUITYPES_EXPORT)

enum class QtProtobufFieldEnum {
    MProtoFieldNumber = 1,
};
Q_ENUM_NS(QtProtobufFieldEnum)

} // namespace QMatrix4x4_QtProtobufNested

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:
    using QtProtobufFieldEnum = QVector2D_QtProtobufNested::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;
};
namespace QVector2D_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_PROTOBUFQTGUITYPES_EXPORT)

enum class QtProtobufFieldEnum {
    XPosProtoFieldNumber = 1,
    YPosProtoFieldNumber = 2,
};
Q_ENUM_NS(QtProtobufFieldEnum)

} // namespace QVector2D_QtProtobufNested

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:
    using QtProtobufFieldEnum = QVector3D_QtProtobufNested::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;
};
namespace QVector3D_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_PROTOBUFQTGUITYPES_EXPORT)

enum class QtProtobufFieldEnum {
    XPosProtoFieldNumber = 1,
    YPosProtoFieldNumber = 2,
    ZPosProtoFieldNumber = 3,
};
Q_ENUM_NS(QtProtobufFieldEnum)

} // namespace QVector3D_QtProtobufNested

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:
    using QtProtobufFieldEnum = QVector4D_QtProtobufNested::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;
};
namespace QVector4D_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_PROTOBUFQTGUITYPES_EXPORT)

enum class QtProtobufFieldEnum {
    XPosProtoFieldNumber = 1,
    YPosProtoFieldNumber = 2,
    ZPosProtoFieldNumber = 3,
    WPosProtoFieldNumber = 4,
};
Q_ENUM_NS(QtProtobufFieldEnum)

} // namespace QVector4D_QtProtobufNested

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:
    using QtProtobufFieldEnum = QTransform_QtProtobufNested::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;
};
namespace QTransform_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_PROTOBUFQTGUITYPES_EXPORT)

enum class QtProtobufFieldEnum {
    MProtoFieldNumber = 1,
};
Q_ENUM_NS(QtProtobufFieldEnum)

} // namespace QTransform_QtProtobufNested

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:
    using QtProtobufFieldEnum = QQuaternion_QtProtobufNested::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;
};
namespace QQuaternion_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_PROTOBUFQTGUITYPES_EXPORT)

enum class QtProtobufFieldEnum {
    ScalarProtoFieldNumber = 1,
    XProtoFieldNumber = 2,
    YProtoFieldNumber = 3,
    ZProtoFieldNumber = 4,
};
Q_ENUM_NS(QtProtobufFieldEnum)

} // namespace QQuaternion_QtProtobufNested

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:
    using QtProtobufFieldEnum = QImage_QtProtobufNested::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 QImage_QtProtobufNested {
Q_NAMESPACE_EXPORT(QPB_PROTOBUFQTGUITYPES_EXPORT)

enum class QtProtobufFieldEnum {
    DataProtoFieldNumber = 1,
    FormatProtoFieldNumber = 2,
};
Q_ENUM_NS(QtProtobufFieldEnum)

} // namespace QImage_QtProtobufNested
} // 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
