22#define WARN_WRONG_MODE(_mode) warnKrita << "Unexpected tool event has come to" << __func__ << "while being mode" << _mode << "!"
24#define WARN_WRONG_MODE(_mode) warnKrita << "Unexpected tool event has come while being mode" << _mode << "!"
27#define CHECK_MODE_SANITY_OR_RETURN(_mode) if (mode() != _mode) { WARN_WRONG_MODE(mode()); return; }
39#include <kritaui_export.h>
44 Q_PROPERTY(
bool isActive READ isActive NOTIFY isActiveChanged)
47 enum { FLAG_USES_CUSTOM_PRESET=0x01, FLAG_USES_CUSTOM_COMPOSITEOP=0x02, FLAG_USES_CUSTOM_SIZE=0x04 };
52 virtual int flags()
const {
return 0; }
67 virtual void activatePrimaryAction();
75 virtual void deactivatePrimaryAction();
109 virtual void beginPrimaryDoubleClickAction(
KoPointerEvent *event);
115 virtual bool primaryActionSupportsHiResEvents()
const;
129 Alternate_NONE = 10000
135 ChangeSize = AlternateChangeSize,
136 ChangeSizeSnap = AlternateChangeSizeSnap,
137 SampleFgNode = AlternateSampleFgNode,
138 SampleBgNode = AlternateSampleBgNode,
139 SampleFgImage = AlternateSampleFgImage,
140 SampleBgImage = AlternateSampleBgImage,
141 Secondary = AlternateSecondary,
142 Third = AlternateThird,
143 Fourth = AlternateFourth,
144 Fifth = AlternateFifth,
153 MYPAINTBRUSH_UNPAINTABLE
155 Q_ENUMS(NodePaintAbility)
157 static AlternateAction actionToAlternateAction(ToolAction action);
159 virtual void activateAlternateAction(AlternateAction action);
160 virtual void deactivateAlternateAction(AlternateAction action);
162 virtual void beginAlternateAction(
KoPointerEvent *event, AlternateAction action);
163 virtual void continueAlternateAction(
KoPointerEvent *event, AlternateAction action);
164 virtual void endAlternateAction(
KoPointerEvent *event, AlternateAction action);
165 virtual void beginAlternateDoubleClickAction(
KoPointerEvent *event, AlternateAction action);
166 virtual bool alternateActionSupportsHiResEvents(AlternateAction action)
const;
167 virtual bool supportsPaintingAssistants()
const;
175 bool isActive()
const;
187 virtual void newActivationWithExternalSource(
KisPaintDeviceSP externalSource);
190 void activate(
const QSet<KoShape*> &shapes)
override;
197 virtual void updateSettingsViews();
204 friend class KisToolPaintingInformationBuilder;
209 QPointF convertToPixelCoord(
const QPointF& pt);
211 QPointF convertToPixelCoordAndAlignOnWidget(
const QPointF& pt);
213 QPointF convertToPixelCoordAndSnap(
KoPointerEvent *e,
const QPointF &offset = QPointF(),
bool useModifiers =
true);
214 QPointF convertToPixelCoordAndSnap(
const QPointF& pt,
const QPointF &offset = QPointF());
217 QPointF widgetCenterInWidgetPixels();
218 QPointF convertDocumentToWidget(
const QPointF& pt);
226 QRectF convertToPt(
const QRectF &
rect);
227 qreal convertToPt(qreal
value);
229 QPointF viewToPixel(
const QPointF &viewCoord)
const;
232 QPointF pixelToView(
const QPoint &pixelCoord)
const;
235 QPointF pixelToView(
const QPointF &pixelCoord)
const;
238 QRectF pixelToView(
const QRectF &pixelRect)
const;
241 QPainterPath pixelToView(
const QPainterPath &pixelPath)
const;
246 QPolygonF pixelToView(
const QPolygonF &pixelPolygon)
const;
249 void updateCanvasPixelRect(
const QRectF &pixelRect);
252 void updateCanvasViewRect(
const QRectF &viewRect);
260 virtual bool listeningToModifiers();
265 virtual void listenToModifiers(
bool listen);
289 bool selectionEditable();
292 bool overrideCursorIfNotEditable();
294 bool blockUntilOperationsFinished();
295 void blockUntilOperationsFinishedForced();
309 virtual void setMode(ToolMode mode);
310 virtual ToolMode mode()
const;
311 void setCursor(
const QCursor &cursor);
317 virtual void resetCursorStyle();
float value(const T *src, size_t ch)