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