File indexing completed on 2024-06-23 04:26:11
0001 /* 0002 * SPDX-FileCopyrightText: 2010 Adam Celarek <kdedev at xibo dot at> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef KIS_SHADE_SELECTOR_LINE_H 0008 #define KIS_SHADE_SELECTOR_LINE_H 0009 0010 #include <QWidget> 0011 #include <KoColor.h> 0012 #include "kis_types.h" 0013 0014 class KisCanvas2; 0015 class KisShadeSelectorLineComboBox; 0016 class KisColorSelectorBaseProxy; 0017 class KoColorSpace; 0018 0019 class KisShadeSelectorLineBase : public QWidget { 0020 public: 0021 KisShadeSelectorLineBase(QWidget* parent) : QWidget(parent) 0022 {} 0023 0024 void setLineNumber(int n) {m_lineNumber=n;} 0025 virtual QString toString() const = 0; 0026 virtual void fromString(const QString& string) = 0; 0027 0028 protected: 0029 int m_lineNumber {0}; 0030 }; 0031 0032 class KisShadeSelectorLine : public KisShadeSelectorLineBase 0033 { 0034 Q_OBJECT 0035 public: 0036 0037 explicit KisShadeSelectorLine(KisColorSelectorBaseProxy *parentProxy, 0038 QWidget *parent = 0); 0039 explicit KisShadeSelectorLine(qreal hueDelta, qreal satDelta, qreal valDelta, 0040 KisColorSelectorBaseProxy *parentProxy, QWidget *parent = 0, qreal hueShift = 0, qreal satShift = 0, qreal valShift = 0); 0041 0042 ~KisShadeSelectorLine() override; 0043 0044 void setParam(qreal hue, qreal sat, qreal val, qreal hueShift, qreal satShift, qreal shiftVal); 0045 void setColor(const KoColor& color); 0046 void updateSettings(); 0047 void setCanvas(KisCanvas2* canvas); 0048 void showHelpText() {m_displayHelpText=true;} 0049 QString toString() const override; 0050 void fromString(const QString& string) override; 0051 0052 void paintEvent(QPaintEvent *) override; 0053 void resizeEvent(QResizeEvent *) override; 0054 void mousePressEvent(QMouseEvent *) override; 0055 void mouseMoveEvent(QMouseEvent *) override; 0056 void mouseReleaseEvent(QMouseEvent *) override; 0057 0058 private: 0059 qreal m_hueDelta {0.0}; 0060 qreal m_saturationDelta {0.0}; 0061 qreal m_valueDelta {0.0}; 0062 0063 qreal m_hueShift {0.0}; 0064 qreal m_saturationShift {0.0}; 0065 qreal m_valueShift {0.0}; 0066 0067 KoColor m_realColor; 0068 KisPaintDeviceSP m_realPixelCache; 0069 const KoColorSpace *m_cachedColorSpace {0}; 0070 0071 bool m_gradient {false}; 0072 int m_patchCount {0}; 0073 int m_lineHeight {0}; 0074 bool m_displayHelpText {false}; 0075 int m_mouseX{0}; 0076 QPoint m_ev; 0077 int m_width{0}; 0078 bool m_isDown {false}; 0079 0080 friend class KisShadeSelectorLineComboBox; 0081 0082 KisColorSelectorBaseProxy* m_parentProxy {0}; 0083 }; 0084 0085 #endif // KIS_SHADE_SELECTOR_LINE_H