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