File indexing completed on 2024-06-16 04:17:49
0001 /* 0002 * kis_tool_select_freehand.h - part of Krayon^WKrita 0003 * 0004 * SPDX-FileCopyrightText: 2000 John Califf <jcaliff@compuzone.net> 0005 * SPDX-FileCopyrightText: 2002 Patrick Julien <freak@codepimps.org> 0006 * SPDX-FileCopyrightText: 2004 Boudewijn Rempt <boud@valdyas.org> 0007 * SPDX-FileCopyrightText: 2015 Michael Abrahams <miabraha@gmail.com> 0008 * 0009 * SPDX-License-Identifier: GPL-2.0-or-later 0010 */ 0011 0012 #ifndef KIS_TOOL_SELECT_OUTLINE_H_ 0013 #define KIS_TOOL_SELECT_OUTLINE_H_ 0014 0015 #include <QPoint> 0016 #include <KisSelectionToolFactoryBase.h> 0017 #include <KisToolOutlineBase.h> 0018 #include <kis_tool_select_base.h> 0019 #include <kis_icon.h> 0020 0021 class __KisToolSelectOutlineLocal : public KisToolOutlineBase 0022 { 0023 Q_OBJECT 0024 0025 public: 0026 __KisToolSelectOutlineLocal(KoCanvasBase * canvas); 0027 }; 0028 0029 class KisToolSelectOutline : public KisToolSelectBase<__KisToolSelectOutlineLocal> 0030 { 0031 Q_OBJECT 0032 0033 public: 0034 KisToolSelectOutline(KoCanvasBase *canvas); 0035 0036 bool primaryActionSupportsHiResEvents() const override; 0037 bool alternateActionSupportsHiResEvents(KisTool::AlternateAction action) const override; 0038 void resetCursorStyle() override; 0039 0040 private: 0041 void finishOutline(const QVector<QPointF>& points) override; 0042 void beginShape() override; 0043 void endShape() override; 0044 }; 0045 0046 class KisToolSelectOutlineFactory : public KisSelectionToolFactoryBase 0047 { 0048 public: 0049 KisToolSelectOutlineFactory() 0050 : KisSelectionToolFactoryBase("KisToolSelectOutline") 0051 { 0052 setToolTip(i18n("Freehand Selection Tool")); 0053 setSection(ToolBoxSection::Select); 0054 setIconName(koIconNameCStr("tool_outline_selection")); 0055 setPriority(3); 0056 setActivationShapeId(KRITA_TOOL_ACTIVATION_ID); 0057 } 0058 0059 ~KisToolSelectOutlineFactory() override {} 0060 0061 KoToolBase * createTool(KoCanvasBase *canvas) override { 0062 return new KisToolSelectOutline(canvas); 0063 } 0064 }; 0065 0066 0067 #endif //__selecttoolfreehand_h__ 0068