File indexing completed on 2024-05-12 16:02:06

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 KISVISUALCOLORSELECTOR_H
0007 #define KISVISUALCOLORSELECTOR_H
0008 
0009 #include "KisVisualColorSelectorShape.h"
0010 
0011 class KisVisualEllipticalSelectorShape : public KisVisualColorSelectorShape
0012 {
0013     Q_OBJECT
0014 public:
0015     enum singelDTypes{border, borderMirrored};
0016     explicit KisVisualEllipticalSelectorShape(QWidget *parent,
0017                                               Dimensions dimension,
0018                                               const KoColorSpace *cs,
0019                                               int channel1, int channel2,
0020                                               const KoColorDisplayRendererInterface *displayRenderer = KoDumbColorDisplayRenderer::instance(), int barWidth=20,
0021                                               KisVisualEllipticalSelectorShape::singelDTypes d = KisVisualEllipticalSelectorShape::border
0022             );
0023     ~KisVisualEllipticalSelectorShape() override;
0024 
0025     void setBorderWidth(int width) override;
0026 
0027     /**
0028      * @brief getSpaceForSquare
0029      * @param geom the full widget rectangle
0030      * @return rectangle with enough space for second widget
0031      */
0032     QRect getSpaceForSquare(QRect geom) override;
0033     QRect getSpaceForCircle(QRect geom) override;
0034     QRect getSpaceForTriangle(QRect geom) override;
0035 protected:
0036     QImage renderAlphaMask() const override;
0037     QPointF mousePositionToShapeCoordinate(const QPointF &pos, const QPointF &dragStart) const override;
0038 
0039 private:
0040     QPointF convertShapeCoordinateToWidgetCoordinate(QPointF coordinate) const override;
0041     QPointF convertWidgetCoordinateToShapeCoordinate(QPointF coordinate) const override;
0042 
0043     singelDTypes m_type;
0044     int m_barWidth;
0045     QRegion getMaskMap() override;
0046     void drawCursor() override;
0047     QSize sizeHint() const override;
0048 };
0049 
0050 #endif // KISVISUALCOLORSELECTOR_H