File indexing completed on 2024-05-26 04:34:30

0001 /*
0002  *  kis_tool_select_rectangular.h - part of Krita
0003  *
0004  *  SPDX-FileCopyrightText: 1999 Michael Koch <koch@kde.org>
0005  *  SPDX-FileCopyrightText: 2002 Patrick Julien <freak@codepimps.org>
0006  *
0007  *
0008  *  SPDX-License-Identifier: GPL-2.0-or-later
0009  */
0010 
0011 #ifndef KIS_TOOL_SELECT_RECTANGULAR_H_
0012 #define KIS_TOOL_SELECT_RECTANGULAR_H_
0013 
0014 #include "KisSelectionToolFactoryBase.h"
0015 #include "kis_tool_rectangle_base.h"
0016 #include <kis_tool_select_base.h>
0017 #include "kis_selection_tool_config_widget_helper.h"
0018 #include <kis_icon.h>
0019 #include <QKeySequence>
0020 
0021 
0022 class __KisToolSelectRectangularLocal : public KisToolRectangleBase
0023 {
0024     Q_OBJECT
0025 
0026 public:
0027     __KisToolSelectRectangularLocal(KoCanvasBase * canvas);
0028 };
0029 
0030 
0031 class KisToolSelectRectangular : public KisToolSelectBase<__KisToolSelectRectangularLocal>
0032 {
0033     Q_OBJECT
0034 public:
0035     KisToolSelectRectangular(KoCanvasBase* canvas);
0036     void resetCursorStyle() override;
0037 private:
0038     void finishRect(const QRectF& rect, qreal roundCornersX, qreal roundCornersY) override;
0039     void beginShape() override;
0040     void endShape() override;
0041 };
0042 
0043 class KisToolSelectRectangularFactory : public KisSelectionToolFactoryBase
0044 {
0045 
0046 public:
0047     KisToolSelectRectangularFactory()
0048         : KisSelectionToolFactoryBase("KisToolSelectRectangular")
0049     {
0050         setToolTip(i18n("Rectangular Selection Tool"));
0051         setSection(ToolBoxSection::Select);
0052         setActivationShapeId(KRITA_TOOL_ACTIVATION_ID);
0053         setIconName(koIconNameCStr("tool_rect_selection"));
0054         setShortcut(QKeySequence(Qt::CTRL + Qt::Key_R));
0055         setPriority(0);
0056     }
0057 
0058     ~KisToolSelectRectangularFactory() override {}
0059 
0060     KoToolBase * createTool(KoCanvasBase *canvas) override {
0061         return new KisToolSelectRectangular(canvas);
0062     }
0063 };
0064 
0065 
0066 
0067 #endif // KIS_TOOL_SELECT_RECTANGULAR_H_
0068