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

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