File indexing completed on 2024-06-23 04:28:27
0001 /* 0002 * SPDX-FileCopyrightText: 2014 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef __KIS_LIQUIFY_TRANSFORM_STRATEGY_H 0008 #define __KIS_LIQUIFY_TRANSFORM_STRATEGY_H 0009 0010 #include <QObject> 0011 #include <QScopedPointer> 0012 0013 #include "kis_transform_strategy_base.h" 0014 0015 class QPointF; 0016 class QPainter; 0017 class KisCoordinatesConverter; 0018 class ToolTransformArgs; 0019 class TransformTransactionProperties; 0020 class QCursor; 0021 0022 0023 class KisLiquifyTransformStrategy : public KisTransformStrategyBase 0024 { 0025 Q_OBJECT 0026 public: 0027 KisLiquifyTransformStrategy(const KisCoordinatesConverter *converter, 0028 ToolTransformArgs ¤tArgs, 0029 TransformTransactionProperties &transaction, const KoCanvasResourceProvider *manager); 0030 ~KisLiquifyTransformStrategy() override; 0031 0032 void setTransformFunction(const QPointF &mousePos, bool perspectiveModifierActive, bool shiftModifierActive); 0033 void paint(QPainter &gc) override; 0034 QCursor getCurrentCursor() const override; 0035 QPainterPath getCursorOutline() const override; 0036 0037 bool acceptsClicks() const override; 0038 0039 void externalConfigChanged() override; 0040 0041 bool beginPrimaryAction(KoPointerEvent *event) override; 0042 void continuePrimaryAction(KoPointerEvent *event) override; 0043 bool endPrimaryAction(KoPointerEvent *event) override; 0044 void hoverActionCommon(KoPointerEvent *event) override; 0045 0046 void activateAlternateAction(KisTool::AlternateAction action) override; 0047 void deactivateAlternateAction(KisTool::AlternateAction action) override; 0048 0049 bool beginAlternateAction(KoPointerEvent *event, KisTool::AlternateAction action) override; 0050 void continueAlternateAction(KoPointerEvent *event, KisTool::AlternateAction action) override; 0051 bool endAlternateAction(KoPointerEvent *event, KisTool::AlternateAction action) override; 0052 0053 Q_SIGNALS: 0054 void requestCanvasUpdate(); 0055 void requestUpdateOptionWidget(); 0056 void requestCursorOutlineUpdate(const QPointF &imagePoint); 0057 void requestImageRecalculation(); 0058 0059 private: 0060 struct Private; 0061 const QScopedPointer<Private> m_d; 0062 }; 0063 0064 #endif /* __KIS_LIQUIFY_TRANSFORM_STRATEGY_H */