24 #include <QMouseEvent>
28 #include "pencildef.h"
42 int preserveAlpha = 0;
43 bool vectorMergeEnabled =
false;
44 bool bezier_state =
false;
45 bool useFeather =
true;
49 bool useFillContour = 0;
54 const int DISABLED = -1;
61 static QString TypeName( ToolType );
63 static ToolPropertyType assistedSettingType;
64 static qreal OriginalSettingValue;
66 explicit BaseTool( QObject* parent = 0 );
67 void initialize(
Editor* editor );
69 QString typeName() {
return TypeName( type() ); }
71 virtual ToolType type() = 0;
72 virtual void loadSettings() = 0;
73 virtual QCursor cursor();
75 virtual void mousePressEvent( QMouseEvent* ) = 0;
76 virtual void mouseMoveEvent( QMouseEvent* ) = 0;
77 virtual void mouseReleaseEvent( QMouseEvent* ) = 0;
78 virtual void mouseDoubleClickEvent( QMouseEvent* );
81 virtual bool keyPressEvent( QKeyEvent* ) {
return false; }
82 virtual bool keyReleaseEvent( QKeyEvent* ) {
return false; }
85 virtual void startAdjusting( ToolPropertyType argSettingType, qreal argStep );
86 virtual void stopAdjusting();
87 virtual void adjustCursor( qreal argOffsetX, ToolPropertyType type );
89 virtual void adjustPressureSensitiveProperties( qreal pressure,
bool mouseDevice );
91 virtual void clear() {}
93 static bool isAdjusting;
97 virtual void setWidth(
const qreal width );
98 virtual void setFeather(
const qreal feather );
99 virtual void setInvisibility(
const bool invisibility );
100 virtual void setBezier(
const bool bezier_state );
101 virtual void setPressure(
const bool pressure );
102 virtual void setUseFeather(
const bool usingFeather );
103 virtual void setPreserveAlpha(
const bool preserveAlpha );
104 virtual void setVectorMergeEnabled(
const bool vectorMergeEnabled );
105 virtual void setAA(
const int useAA );
106 virtual void setInpolLevel(
const int level );
107 virtual void setTolerance(
const int tolerance);
108 virtual void setUseFillContour(
const bool useFillContour);
110 virtual void leavingThisTool(){}
111 virtual void switchingLayers(){}
115 QPointF getCurrentPixel();
116 QPointF getCurrentPoint();
117 QPointF getLastPixel();
118 QPointF getLastPoint();
119 QPointF getLastPressPixel();
120 QPointF getLastPressPoint();
122 bool isPropertyEnabled( ToolPropertyType t ) {
return m_enabledProperties[ t ]; }
125 QHash<ToolPropertyType, bool> m_enabledProperties;
127 Editor* editor() {
return mEditor; }
128 Editor* mEditor =
nullptr;
131 qreal mAdjustmentStep = 0.0f;
144 QPixmap cursorPixmap;