Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_stroke_strategy.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2011 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef __KIS_STROKE_STRATEGY_H
8#define __KIS_STROKE_STRATEGY_H
9
10#include <QString>
11#include "kis_types.h"
12#include "kundo2magicstring.h"
13#include "kritaimage_export.h"
14#include "KisLodPreferences.h"
15
19
20class KRITAIMAGE_EXPORT KisStrokeStrategy
21{
22public:
23 KisStrokeStrategy(const QLatin1String &id, const KUndo2MagicString &name = KUndo2MagicString());
24 virtual ~KisStrokeStrategy();
25
34 virtual void notifyUserStartedStroke();
35
44 virtual void notifyUserEndedStroke();
45
46 virtual KisStrokeJobStrategy* createInitStrategy();
47 virtual KisStrokeJobStrategy* createFinishStrategy();
48 virtual KisStrokeJobStrategy* createCancelStrategy();
49 virtual KisStrokeJobStrategy* createDabStrategy();
50 virtual KisStrokeJobStrategy* createSuspendStrategy();
51 virtual KisStrokeJobStrategy* createResumeStrategy();
52
53 virtual KisStrokeJobData* createInitData();
54 virtual KisStrokeJobData* createFinishData();
55 virtual KisStrokeJobData* createCancelData();
56 virtual KisStrokeJobData* createSuspendData();
57 virtual KisStrokeJobData* createResumeData();
58
59 virtual KisStrokeStrategy* createLodClone(int levelOfDetail);
60
66 virtual void tryCancelCurrentStrokeJobAsync();
67
68 bool isExclusive() const;
69 bool supportsWrapAroundMode() const;
70
71
79 bool clearsRedoOnStart() const;
80
89 bool requestsOtherStrokesToEnd() const;
90
98 bool canForgetAboutMe() const;
99
111 bool isAsynchronouslyCancellable() const;
112
113 bool needsExplicitCancel() const;
114
115
119 qreal balancingRatioOverride() const;
120
121 QString id() const;
122 KUndo2MagicString name() const;
123
127 KisLodPreferences currentLodPreferences() const;
128
129 void setMutatedJobsInterface(KisStrokesQueueMutatedJobInterface *mutatedJobsInterface, KisStrokeId strokeId);
130
131 bool forceLodModeIfPossible() const;
132 void setForceLodModeIfPossible(bool forceLodModeIfPossible);
133
134protected:
135 // testing surrogate class
136 friend class KisMutatableDabStrategy;
137
156 void addMutatedJobs(const QVector<KisStrokeJobData*> list);
157
161 void addMutatedJob(KisStrokeJobData *data);
162
163
164 // you are not supposed to change these parameters
165 // after the KisStroke object has been created
166
167 void setExclusive(bool value);
168 void setSupportsWrapAroundMode(bool value);
169 void setClearsRedoOnStart(bool value);
170 void setRequestsOtherStrokesToEnd(bool value);
171 void setCanForgetAboutMe(bool value);
172 void setAsynchronouslyCancellable(bool value);
173 void setNeedsExplicitCancel(bool value);
174
187 void setBalancingRatioOverride(qreal value);
188
189protected:
194
195private:
198
206
207 QLatin1String m_id;
209
212};
213
214#endif /* __KIS_STROKE_STRATEGY_H */
float value(const T *src, size_t ch)
KUndo2MagicString m_name
KisStrokesQueueMutatedJobInterface * m_mutatedJobsInterface