File indexing completed on 2024-06-09 04:28:05

0001 /*
0002  * SPDX-FileCopyrightText: 2009, 2010 Lukáš Tvrdý (lukast.dev@gmail.com)
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef KIS_GRID_PAINTOP_SETTINGS_H_
0008 #define KIS_GRID_PAINTOP_SETTINGS_H_
0009 
0010 #include <QScopedPointer>
0011 
0012 #include <brushengine/kis_paintop_settings.h>
0013 #include <kis_types.h>
0014 
0015 #include <kis_outline_generation_policy.h>
0016 #include "kis_grid_paintop_settings_widget.h"
0017 
0018 
0019 
0020 class KisGridPaintOpSettings : public KisOutlineGenerationPolicy<KisPaintOpSettings>
0021 {
0022 public:
0023     KisGridPaintOpSettings(KisResourcesInterfaceSP resourcesInterface);
0024     ~KisGridPaintOpSettings() override;
0025 
0026     void setPaintOpSize(qreal value) override;
0027     qreal paintOpSize() const override;
0028 
0029     void setPaintOpAngle(qreal value) override;
0030     qreal paintOpAngle() const override;
0031 
0032     KisOptimizedBrushOutline brushOutline(const KisPaintInformation &info, const OutlineMode &mode, qreal alignForZoom) override;
0033     bool paintIncremental() override;
0034 
0035     QList<KisUniformPaintOpPropertySP> uniformProperties(KisPaintOpSettingsSP settings, QPointer<KisPaintOpPresetUpdateProxy> updateProxy) override;
0036 
0037     bool mousePressEvent(const KisPaintInformation& pos, Qt::KeyboardModifiers modifiers, KisNodeWSP currentNode) override;
0038     bool mouseReleaseEvent() override;
0039 
0040 private:
0041 
0042     struct Private;
0043     const QScopedPointer<Private> m_d;
0044 
0045 public:
0046     bool m_modifyOffsetWithShortcut;
0047 
0048 };
0049 
0050 typedef KisSharedPtr<KisGridPaintOpSettings> KisGridPaintOpSettingsSP;
0051 
0052 #endif