Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_asl_xml_writer.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2015 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef __KIS_ASL_XML_WRITER_H
8#define __KIS_ASL_XML_WRITER_H
9
10#include <QScopedPointer>
11#include <QVector>
12
13#include <KoPattern.h>
14#include <KoSegmentGradient.h>
15
16#include "kritapsdutils_export.h"
17
18class QString;
19class QColor;
20class QPointF;
21class QDomDocument;
22
23class KoStopGradient;
25
26class KRITAPSDUTILS_EXPORT KisAslXmlWriter
27{
28public:
31
32 QDomDocument document() const;
33
34 void enterDescriptor(const QString &key, const QString &name, const QString &classId);
35 void leaveDescriptor();
36
37 void enterList(const QString &key);
38 void leaveList();
39
40 void writeDouble(const QString &key, double value);
41 void writeInteger(const QString &key, int value);
42 void writeEnum(const QString &key, const QString &typeId, const QString &value);
43 void writeUnitFloat(const QString &key, const QString &unit, double value);
44 void writeText(const QString &key, const QString &value);
45 void writeBoolean(const QString &key, bool value);
46 void writeColor(const QString &key, const KoColor &value);
47 void writePoint(const QString &key, const QPointF &value);
48 void writePhasePoint(const QString &key, const QPointF &value);
49 void writeOffsetPoint(const QString &key, const QPointF &value);
50 void writeCurve(const QString &key, const QString &name, const QVector<QPointF> &points);
51 QString writePattern(const QString &key, const KoPatternSP pattern);
52 void writePatternRef(const QString &key, const KoPatternSP pattern, const QString &uuid);
53 void writeSegmentGradient(const QString &key, const KoSegmentGradient &gradient);
54 void writeStopGradient(const QString &key, const KoStopGradient &gradient);
55 void writeRawData(const QString key, const QByteArray *rawData);
56 void writeTransform(const QString &key, const QTransform &transform);
57 void writeUnitRect(const QString &key, const QString &unit, const QRectF &rect);
58 void writeFloatRect(const QString &key, const QRectF &rect);
59 void writePointRect(const QString &key, const QPolygonF &transformedRect);
60
61private:
62 QString getSegmentEndpointTypeString(KoGradientSegmentEndpointType segtype);
63 void writeGradientImpl(const QString &key,
64 const QString &name,
65 QVector<KoColor> colors,
66 QVector<qreal> transparencies,
67 QVector<qreal> positions,
68 QVector<QString> types,
69 QVector<qreal> middleOffsets);
70
71private:
72 struct Private;
73 const QScopedPointer<Private> m_d;
74};
75
76#endif /* __KIS_ASL_XML_WRITER_H */
float value(const T *src, size_t ch)
KoGradientSegmentEndpointType
const QScopedPointer< Private > m_d