File indexing completed on 2024-06-16 04:16:00
0001 /* 0002 * SPDX-FileCopyrightText: 2010 Adam Celarek <kdedev at xibo dot at> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef KIS_COLOR_SELECTOR_RING_H 0008 #define KIS_COLOR_SELECTOR_RING_H 0009 0010 #include "kis_color_selector_component.h" 0011 0012 #include <QImage> 0013 0014 class KisColorSelectorRing : public KisColorSelectorComponent 0015 { 0016 Q_OBJECT 0017 public: 0018 explicit KisColorSelectorRing(KisColorSelector *parent); 0019 int innerRadius() const; 0020 void setColor(const KoColor &color) override; 0021 void setInnerRingRadiusFraction(qreal newFraction); 0022 0023 protected: 0024 void paint(QPainter*) override; 0025 KoColor selectColor(int x, int y) override; 0026 bool containsPointInComponentCoords(int x, int y) const override; 0027 0028 private: 0029 void paintCache(qreal devicePixelRatioF); 0030 void colorCache(); 0031 int outerRadius() const; 0032 0033 QImage m_pixelCache; 0034 const KoColorSpace* m_cachedColorSpace {0}; 0035 int m_cachedSize {0}; 0036 qreal m_lastHue {0.0}; 0037 QList<QRgb> m_cachedColors; 0038 qreal m_innerRingRadiusFraction {0.85}; 0039 0040 qreal R {0.0}; 0041 qreal G {0.0}; 0042 qreal B {0.0}; 0043 qreal Gamma {1.0}; 0044 }; 0045 0046 #endif // KIS_COLOR_SELECTOR_RING_H