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