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