File indexing completed on 2024-06-16 04:16:48

0001 /*
0002  * This file is part of Krita
0003  *
0004  * SPDX-FileCopyrightText: 2006 Cyrille Berger <cberger@cberger.net>
0005  *
0006  *  SPDX-License-Identifier: GPL-2.0-or-later
0007  */
0008 
0009 #ifndef PATTERN_GENERATOR_H
0010 #define PATTERN_GENERATOR_H
0011 
0012 #include <QObject>
0013 #include <QVariant>
0014 #include "generator/kis_generator.h"
0015 
0016 class KisConfigWidget;
0017 
0018 class KritaPatternGenerator : public QObject
0019 {
0020     Q_OBJECT
0021 public:
0022     KritaPatternGenerator(QObject *parent, const QVariantList &);
0023     ~KritaPatternGenerator() override;
0024 };
0025 
0026 class PatternGenerator : public KisGenerator
0027 {
0028 public:
0029 
0030     PatternGenerator();
0031 
0032     using KisGenerator::generate;
0033 
0034     void generate(KisProcessingInformation dst,
0035                   const QSize& size,
0036                   const KisFilterConfigurationSP config,
0037                   KoUpdater* progressUpdater
0038                  ) const override;
0039 
0040     static inline KoID id() {
0041         return KoID("pattern", i18n("Pattern"));
0042     }
0043 
0044     KisFilterConfigurationSP factoryConfiguration(KisResourcesInterfaceSP resourcesInterface) const override;
0045     KisFilterConfigurationSP defaultConfiguration(KisResourcesInterfaceSP resourcesInterface) const override;
0046     KisConfigWidget *createConfigurationWidget(QWidget* parent, const KisPaintDeviceSP dev, bool useForMasks) const override;
0047 
0048     /**
0049      * This generator pastes a single instance of pattern over the whole layer.
0050      */
0051     bool allowsSplittingIntoPatches() const override { return false; }
0052 };
0053 
0054 #endif