Warning, file /graphics/krita/libs/psdutils/asl/kis_asl_xml_writer.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002  *  SPDX-FileCopyrightText: 2015 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef __KIS_ASL_XML_WRITER_H
0008 #define __KIS_ASL_XML_WRITER_H
0009 
0010 #include <QScopedPointer>
0011 #include <QVector>
0012 
0013 #include <KoPattern.h>
0014 #include <KoSegmentGradient.h>
0015 
0016 #include "kritapsdutils_export.h"
0017 
0018 class QString;
0019 class QColor;
0020 class QPointF;
0021 class QDomDocument;
0022 
0023 class KoStopGradient;
0024 class KoSegmentGradient;
0025 
0026 class KRITAPSDUTILS_EXPORT KisAslXmlWriter
0027 {
0028 public:
0029     KisAslXmlWriter();
0030     ~KisAslXmlWriter();
0031 
0032     QDomDocument document() const;
0033 
0034     void enterDescriptor(const QString &key, const QString &name, const QString &classId);
0035     void leaveDescriptor();
0036 
0037     void enterList(const QString &key);
0038     void leaveList();
0039 
0040     void writeDouble(const QString &key, double value);
0041     void writeInteger(const QString &key, int value);
0042     void writeEnum(const QString &key, const QString &typeId, const QString &value);
0043     void writeUnitFloat(const QString &key, const QString &unit, double value);
0044     void writeText(const QString &key, const QString &value);
0045     void writeBoolean(const QString &key, bool value);
0046     void writeColor(const QString &key, const KoColor &value);
0047     void writePoint(const QString &key, const QPointF &value);
0048     void writePhasePoint(const QString &key, const QPointF &value);
0049     void writeOffsetPoint(const QString &key, const QPointF &value);
0050     void writeCurve(const QString &key, const QString &name, const QVector<QPointF> &points);
0051     QString writePattern(const QString &key, const KoPatternSP pattern);
0052     void writePatternRef(const QString &key, const KoPatternSP pattern, const QString &uuid);
0053     void writeSegmentGradient(const QString &key, const KoSegmentGradient &gradient);
0054     void writeStopGradient(const QString &key, const KoStopGradient &gradient);
0055 
0056 private:
0057     QString getSegmentEndpointTypeString(KoGradientSegmentEndpointType segtype);
0058     void writeGradientImpl(const QString &key,
0059                            const QString &name,
0060                            QVector<KoColor> colors,
0061                            QVector<qreal> transparencies,
0062                            QVector<qreal> positions,
0063                            QVector<QString> types,
0064                            QVector<qreal> middleOffsets);
0065 
0066 private:
0067     struct Private;
0068     const QScopedPointer<Private> m_d;
0069 };
0070 
0071 #endif /* __KIS_ASL_XML_WRITER_H */