Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_tool_pencil.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2012 Sven Langkamp <sven.langkamp@gmail.com>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
#ifndef KIS_TOOL_PENCIL_H_
8
#define KIS_TOOL_PENCIL_H_
9
10
#include <
KoPencilTool.h
>
11
#include <
KoToolFactoryBase.h
>
12
13
#include "
flake/kis_node_shape.h
"
14
#include "
kis_tool_shape.h
"
15
#include "
kis_delegated_tool.h
"
16
#include <
kis_icon.h
>
17
18
class
KoCanvasBase
;
19
class
KisToolPencil
;
20
22
23
class
__KisToolPencilLocalTool
:
public
KoPencilTool
{
24
public
:
25
__KisToolPencilLocalTool
(
KoCanvasBase
*
canvas
,
KisToolPencil
* parentTool);
26
void
paint
(QPainter &painter,
const
KoViewConverter
&converter)
override
;
27
virtual
void
paintPath
(
KoPathShape
* path, QPainter &painter,
const
KoViewConverter
&converter);
28
void
addPathShape
(
KoPathShape
* pathShape,
bool
closePath)
override
;
29
30
using
KoPencilTool::createOptionWidgets
;
31
32
protected
:
33
void
slotUpdatePencilCursor
()
override
;
34
35
private
:
36
KisToolPencil
*
const
m_parentTool
;
37
};
38
39
typedef
KisDelegatedTool
<
KisToolShape
,
40
__KisToolPencilLocalTool
,
41
DeselectShapesActivationPolicy
>
DelegatedPencilTool
;
42
43
class
KisToolPencil
:
public
DelegatedPencilTool
44
{
45
Q_OBJECT
46
47
public
:
48
KisToolPencil
(
KoCanvasBase
* canvas);
49
void
mousePressEvent
(
KoPointerEvent
*event)
override
;
50
// reimplementing KoToolBase's method. It ignores the event, and then
51
// Qt does not send mouseRelease event, which causes the tool to jump.
52
void
mouseDoubleClickEvent
(
KoPointerEvent
*event)
override
;
53
54
void
beginPrimaryAction
(
KoPointerEvent
* event)
override
;
55
void
continuePrimaryAction
(
KoPointerEvent
*event)
override
;
56
void
endPrimaryAction
(
KoPointerEvent
*event)
override
;
57
58
QList<QPointer<QWidget>
>
createOptionWidgets
()
override
;
59
60
protected
Q_SLOTS:
61
void
resetCursorStyle
()
override
;
62
63
private
:
64
void
updatePencilCursor
(
bool
value
);
65
66
private
:
67
friend
class
__KisToolPencilLocalTool
;
68
};
69
70
class
KisToolPencilFactory
:
public
KisToolPaintFactoryBase
71
{
72
73
public
:
74
KisToolPencilFactory
()
75
:
KisToolPaintFactoryBase
(
"KisToolPencil"
) {
76
setToolTip
(i18n(
"Freehand Path Tool"
));
77
setSection
(
ToolBoxSection::Shape
);
78
setActivationShapeId
(
KRITA_TOOL_ACTIVATION_ID
);
79
setIconName
(
koIconNameCStr
(
"krita_tool_freehandvector"
));
80
setPriority
(9);
81
}
82
83
~KisToolPencilFactory
()
override
{}
84
85
KoToolBase
*
createTool
(
KoCanvasBase
*
canvas
)
override
{
86
return
new
KisToolPencil
(
canvas
);
87
}
88
};
89
90
91
92
#endif
// KIS_TOOL_PENCIL_H_
93
value
float value(const T *src, size_t ch)
Definition
JPEGXLImport.cpp:93
KoPencilTool.h
KoToolFactoryBase.h
KisDelegatedTool
Definition
kis_delegated_tool.h:29
KisToolPaintFactoryBase
Definition
KisToolPaintFactoryBase.h:14
KisToolPencilFactory
Definition
kis_tool_pencil.h:71
KisToolPencilFactory::KisToolPencilFactory
KisToolPencilFactory()
Definition
kis_tool_pencil.h:74
KisToolPencilFactory::createTool
KoToolBase * createTool(KoCanvasBase *canvas) override
Definition
kis_tool_pencil.h:85
KisToolPencilFactory::~KisToolPencilFactory
~KisToolPencilFactory() override
Definition
kis_tool_pencil.h:83
KisToolPencil
Definition
kis_tool_pencil.h:44
KisToolPencil::KisToolPencil
KisToolPencil(KoCanvasBase *canvas)
Definition
kis_tool_pencil.cc:19
KisToolPencil::createOptionWidgets
QList< QPointer< QWidget > > createOptionWidgets() override
Definition
kis_tool_pencil.cc:83
KisToolPencil::beginPrimaryAction
void beginPrimaryAction(KoPointerEvent *event) override
Definition
kis_tool_pencil.cc:58
KisToolPencil::continuePrimaryAction
void continuePrimaryAction(KoPointerEvent *event) override
Definition
kis_tool_pencil.cc:73
KisToolPencil::endPrimaryAction
void endPrimaryAction(KoPointerEvent *event) override
Definition
kis_tool_pencil.cc:78
KisToolPencil::updatePencilCursor
void updatePencilCursor(bool value)
Definition
kis_tool_pencil.cc:40
KisToolPencil::mousePressEvent
void mousePressEvent(KoPointerEvent *event) override
Definition
kis_tool_pencil.cc:48
KisToolPencil::mouseDoubleClickEvent
void mouseDoubleClickEvent(KoPointerEvent *event) override
Definition
kis_tool_pencil.cc:53
KisToolPencil::resetCursorStyle
void resetCursorStyle() override
Definition
kis_tool_pencil.cc:29
KisToolShape
Definition
kis_tool_shape.h:41
KoCanvasBase
Definition
KoCanvasBase.cpp:24
KoPathShape
The position of a path point within a path shape.
Definition
KoPathShape.h:63
KoPencilTool
Definition
KoPencilTool.h:22
KoPencilTool::createOptionWidgets
QList< QPointer< QWidget > > createOptionWidgets() override
Definition
KoPencilTool.cpp:280
KoPointerEvent
Definition
KoPointerEvent.cpp:92
KoToolBase
Definition
KoToolBase.h:57
KoToolBase::canvas
KoCanvasBase * canvas() const
Returns the canvas the tool is working on.
Definition
KoToolBase.cpp:262
KoToolFactoryBase::setSection
void setSection(const QString §ion)
Definition
KoToolFactoryBase.cpp:178
KoToolFactoryBase::setActivationShapeId
void setActivationShapeId(const QString &activationShapeId)
Definition
KoToolFactoryBase.cpp:168
KoToolFactoryBase::setIconName
void setIconName(const char *iconName)
Definition
KoToolFactoryBase.cpp:183
KoToolFactoryBase::setToolTip
void setToolTip(const QString &tooltip)
Definition
KoToolFactoryBase.cpp:173
KoToolFactoryBase::setPriority
void setPriority(int newPriority)
Definition
KoToolFactoryBase.cpp:193
KoViewConverter
Definition
KoViewConverter.h:32
QList
Definition
KisQStringListFwd.h:16
__KisToolPencilLocalTool
Definition
kis_tool_pencil.h:23
__KisToolPencilLocalTool::m_parentTool
KisToolPencil *const m_parentTool
Definition
kis_tool_pencil.h:36
__KisToolPencilLocalTool::addPathShape
void addPathShape(KoPathShape *pathShape, bool closePath) override
Definition
kis_tool_pencil.cc:126
__KisToolPencilLocalTool::paintPath
virtual void paintPath(KoPathShape *path, QPainter &painter, const KoViewConverter &converter)
Definition
kis_tool_pencil.cc:113
__KisToolPencilLocalTool::paint
void paint(QPainter &painter, const KoViewConverter &converter) override
Definition
kis_tool_pencil.cc:102
__KisToolPencilLocalTool::slotUpdatePencilCursor
void slotUpdatePencilCursor() override
Definition
kis_tool_pencil.cc:136
__KisToolPencilLocalTool::__KisToolPencilLocalTool
__KisToolPencilLocalTool(KoCanvasBase *canvas, KisToolPencil *parentTool)
Definition
kis_tool_pencil.cc:97
kis_delegated_tool.h
kis_icon.h
koIconNameCStr
#define koIconNameCStr(name)
Definition
kis_icon.h:28
kis_node_shape.h
KRITA_TOOL_ACTIVATION_ID
static const QString KRITA_TOOL_ACTIVATION_ID
Definition
kis_tool.h:37
DelegatedPencilTool
KisDelegatedTool< KisToolShape, __KisToolPencilLocalTool, DeselectShapesActivationPolicy > DelegatedPencilTool
Definition
kis_tool_pencil.h:41
kis_tool_shape.h
ToolBoxSection::Shape
static const QString Shape
Freehand and shapes like ellipses and lines.
Definition
KoToolFactoryBase.h:28
DeselectShapesActivationPolicy
Definition
kis_delegated_tool_policies.h:23
Private::canvas
KisCanvas2 * canvas
Definition
KisFrameDisplayProxy.cpp:22
plugins
tools
basictools
kis_tool_pencil.h
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52