File indexing completed on 2024-06-16 04:17:49
0001 /* 0002 * kis_tool_select_elliptical.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_ELLIPTICAL_H__ 0013 #define __KIS_TOOL_SELECT_ELLIPTICAL_H__ 0014 0015 #include "KisSelectionToolFactoryBase.h" 0016 #include "kis_tool_ellipse_base.h" 0017 #include <kis_tool_select_base.h> 0018 #include "kis_selection_tool_config_widget_helper.h" 0019 #include <KoIcon.h> 0020 #include <QKeySequence> 0021 #include <kis_icon.h> 0022 #include <QMenu> 0023 0024 class __KisToolSelectEllipticalLocal : public KisToolEllipseBase 0025 { 0026 Q_OBJECT 0027 0028 public: 0029 __KisToolSelectEllipticalLocal(KoCanvasBase *canvas); 0030 }; 0031 0032 class KisToolSelectElliptical : public KisToolSelectBase<__KisToolSelectEllipticalLocal> 0033 { 0034 Q_OBJECT 0035 public: 0036 KisToolSelectElliptical(KoCanvasBase* canvas); 0037 void resetCursorStyle() override; 0038 private: 0039 void finishRect(const QRectF &rect, qreal roundCornersX, qreal roundCornersY) override; 0040 void beginShape() override; 0041 void endShape() override; 0042 }; 0043 0044 class KisToolSelectEllipticalFactory : public KisSelectionToolFactoryBase 0045 { 0046 public: 0047 KisToolSelectEllipticalFactory() 0048 : KisSelectionToolFactoryBase("KisToolSelectElliptical") 0049 { 0050 setToolTip(i18n("Elliptical Selection Tool")); 0051 setSection(ToolBoxSection::Select); 0052 setActivationShapeId(KRITA_TOOL_ACTIVATION_ID); 0053 setIconName(koIconNameCStr("tool_elliptical_selection")); 0054 setShortcut(QKeySequence(Qt::Key_J)); 0055 setPriority(1); 0056 } 0057 0058 ~KisToolSelectEllipticalFactory() override {} 0059 0060 KoToolBase * createTool(KoCanvasBase *canvas) override { 0061 return new KisToolSelectElliptical(canvas); 0062 } 0063 0064 }; 0065 0066 #endif //__KIS_TOOL_SELECT_ELLIPTICAL_H__ 0067