File indexing completed on 2024-06-23 04:28:30
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_TRANSFORM_STRATEGY_BASE_H 0008 #define __KIS_TRANSFORM_STRATEGY_BASE_H 0009 0010 #include <QObject> 0011 #include <QScopedPointer> 0012 0013 #include "kis_tool.h" 0014 0015 0016 class QImage; 0017 class QTransform; 0018 class QPainter; 0019 class QCursor; 0020 class KoPointerEvent; 0021 class QPainterPath; 0022 0023 0024 class KisTransformStrategyBase : public QObject 0025 { 0026 public: 0027 KisTransformStrategyBase(); 0028 ~KisTransformStrategyBase() override; 0029 0030 QImage originalImage() const; 0031 QTransform thumbToImageTransform() const; 0032 0033 void setThumbnailImage(const QImage &image, QTransform thumbToImageTransform); 0034 0035 public: 0036 0037 virtual bool acceptsClicks() const; 0038 0039 virtual void paint(QPainter &gc) = 0; 0040 virtual QCursor getCurrentCursor() const = 0; 0041 virtual QPainterPath getCursorOutline() const; 0042 0043 virtual void externalConfigChanged() = 0; 0044 0045 virtual void activatePrimaryAction(); 0046 virtual void deactivatePrimaryAction(); 0047 0048 virtual void setDecorationThickness(int thickness); 0049 virtual int decorationThickness() const; 0050 0051 virtual bool beginPrimaryAction(KoPointerEvent *event) = 0; 0052 virtual void continuePrimaryAction(KoPointerEvent *event) = 0; 0053 virtual bool endPrimaryAction(KoPointerEvent *event) = 0; 0054 virtual void hoverActionCommon(KoPointerEvent *event) = 0; 0055 0056 virtual void activateAlternateAction(KisTool::AlternateAction action); 0057 virtual void deactivateAlternateAction(KisTool::AlternateAction action); 0058 0059 virtual bool beginAlternateAction(KoPointerEvent *event, KisTool::AlternateAction action); 0060 virtual void continueAlternateAction(KoPointerEvent *event, KisTool::AlternateAction action); 0061 virtual bool endAlternateAction(KoPointerEvent *event, KisTool::AlternateAction action); 0062 0063 private: 0064 struct Private; 0065 const QScopedPointer<Private> m_d; 0066 }; 0067 0068 #endif /* __KIS_TRANSFORM_STRATEGY_BASE_H */