File indexing completed on 2024-05-12 15:56:12
0001 /* 0002 * SPDX-FileCopyrightText: 2004 Cyrille Berger <cberger@cberger.net> 0003 * SPDX-FileCopyrightText: 2011 Lukáš Tvrdý <lukast.dev@gmail.com> 0004 * 0005 * SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef _KIS_TEXT_BRUSH_H_ 0009 #define _KIS_TEXT_BRUSH_H_ 0010 0011 #include <QFont> 0012 0013 #include "kis_scaling_size_brush.h" 0014 #include "kritabrush_export.h" 0015 0016 class KisTextBrushesPipe; 0017 0018 0019 class BRUSH_EXPORT KisTextBrush : public KisScalingSizeBrush 0020 { 0021 0022 public: 0023 KisTextBrush(); 0024 KisTextBrush(const KisTextBrush &rhs); 0025 ~KisTextBrush() override; 0026 0027 KisTextBrush &operator=(const KisTextBrush &rhs) = delete; 0028 0029 KoResourceSP clone() const override; 0030 0031 bool isEphemeral() const override; 0032 bool loadFromDevice(QIODevice *dev, KisResourcesInterfaceSP resourcesInterface) override; 0033 bool saveToDevice(QIODevice *dev) const override; 0034 0035 void notifyStrokeStarted() override; 0036 void prepareForSeqNo(const KisPaintInformation& info, int seqNo) override; 0037 0038 void generateMaskAndApplyMaskOrCreateDab(KisFixedPaintDeviceSP dst, KisBrush::ColoringInformation* coloringInformation, 0039 KisDabShape const&, 0040 const KisPaintInformation& info, 0041 double subPixelX = 0, double subPixelY = 0, qreal softnessFactor = DEFAULT_SOFTNESS_FACTOR, qreal lightnessStrength = 1.0) const override; 0042 0043 KisFixedPaintDeviceSP paintDevice(const KoColorSpace * colorSpace, 0044 KisDabShape const&, const KisPaintInformation& info, double subPixelX, double subPixelY) const override; 0045 0046 void setText(const QString& txt); 0047 QString text(void) const; 0048 0049 QFont font(); 0050 void setFont(const QFont& font); 0051 0052 void setPipeMode(bool pipe); 0053 bool pipeMode() const; 0054 0055 void updateBrush(); 0056 void toXML(QDomDocument& , QDomElement&) const override; 0057 0058 quint32 brushIndex() const override; 0059 qint32 maskWidth(KisDabShape const&, double subPixelX, double subPixelY, const KisPaintInformation& info) const override; 0060 qint32 maskHeight(KisDabShape const&, double subPixelX, double subPixelY, const KisPaintInformation& info) const override; 0061 void setAngle(qreal _angle) override; 0062 void setScale(qreal _scale) override; 0063 void setSpacing(double _spacing) override; 0064 0065 private: 0066 QFont m_font; 0067 QString m_text; 0068 0069 private: 0070 KisTextBrushesPipe *m_brushesPipe; 0071 }; 0072 0073 typedef QSharedPointer<KisTextBrush> KisTextBrushSP; 0074 0075 #endif