File indexing completed on 2024-05-19 04:29:30

0001 /*
0002  * SPDX-FileCopyrightText: 2016 Wolthera van Hovell tot Westerflier <griffinvalley@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #ifndef KIS_VISUAL_TRIANGLE_SELECTOR_SHAPE_H
0007 #define KIS_VISUAL_TRIANGLE_SELECTOR_SHAPE_H
0008 
0009 #include "KisVisualColorSelectorShape.h"
0010 
0011 class KisVisualTriangleSelectorShape : public KisVisualColorSelectorShape
0012 {
0013     Q_OBJECT
0014 public:
0015     explicit KisVisualTriangleSelectorShape(KisVisualColorSelector *parent,
0016                                             Dimensions dimension,
0017                                             int channel1, int channel2,
0018                                             int margin = 5
0019             );
0020     ~KisVisualTriangleSelectorShape() override;
0021 
0022     void setBorderWidth(int /*width*/) override;
0023 
0024     /**
0025      * @brief getSpaceForSquare
0026      * @param geom the full widget rectangle
0027      * @return rectangle with enough space for second widget
0028      */
0029     QRect getSpaceForSquare(QRect geom) override;
0030     QRect getSpaceForCircle(QRect geom) override;
0031     QRect getSpaceForTriangle(QRect geom) override;
0032 
0033 protected:
0034     QImage renderAlphaMask() const override;
0035 
0036 private:
0037 
0038     QPointF convertShapeCoordinateToWidgetCoordinate(QPointF coordinate) const override;
0039     QPointF convertWidgetCoordinateToShapeCoordinate(QPointF coordinate) const override;
0040 
0041     QRegion getMaskMap() override;
0042     void drawCursor(QPainter &painter) override;
0043 
0044     int m_margin { 5 };
0045 };
0046 #endif