File indexing completed on 2024-05-26 04:34:45
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_SIMPLIFIED_ACTION_POLICY_STRATEGY_H 0008 #define __KIS_SIMPLIFIED_ACTION_POLICY_STRATEGY_H 0009 0010 #include <QScopedPointer> 0011 0012 #include "kis_transform_strategy_base.h" 0013 0014 0015 class KoPointerEvent; 0016 class KisCoordinatesConverter; 0017 class KoSnapGuide; 0018 0019 class KisSimplifiedActionPolicyStrategy : public KisTransformStrategyBase 0020 { 0021 public: 0022 KisSimplifiedActionPolicyStrategy(const KisCoordinatesConverter *_converter, KoSnapGuide *snapGuide = 0); 0023 ~KisSimplifiedActionPolicyStrategy() override; 0024 0025 void activatePrimaryAction() override; 0026 0027 bool beginPrimaryAction(KoPointerEvent *event) override; 0028 void continuePrimaryAction(KoPointerEvent *event) override; 0029 bool endPrimaryAction(KoPointerEvent *event) override; 0030 void hoverActionCommon(KoPointerEvent *event) override; 0031 0032 virtual QPointF handleSnapPoint(const QPointF &imagePos); 0033 0034 void activateAlternateAction(KisTool::AlternateAction action) override; 0035 void deactivateAlternateAction(KisTool::AlternateAction action) override; 0036 0037 bool beginAlternateAction(KoPointerEvent *event, KisTool::AlternateAction action) override; 0038 void continueAlternateAction(KoPointerEvent *event, KisTool::AlternateAction action) override; 0039 bool endAlternateAction(KoPointerEvent *event, KisTool::AlternateAction action) override; 0040 0041 private: 0042 QPointF snapDocPoint(const QPointF &point, Qt::KeyboardModifiers modifiers) const; 0043 0044 protected: 0045 0046 virtual void setTransformFunction(const QPointF &mousePos, bool perspectiveModifierActive, bool shiftModifierActive, bool altModifierActive) = 0; 0047 virtual bool shiftModifierIsUsed() const; 0048 0049 virtual bool beginPrimaryAction(const QPointF &pt) = 0; 0050 virtual void continuePrimaryAction(const QPointF &pt, bool shiftModifierActive, bool altModifierActive) = 0; 0051 virtual bool endPrimaryAction() = 0; 0052 virtual void hoverActionCommon(const QPointF &pt); 0053 0054 private: 0055 struct Private; 0056 const QScopedPointer<Private> m_d; 0057 }; 0058 0059 #endif /* __KIS_SIMPLIFIED_ACTION_POLICY_STRATEGY_H */