Krita Source Code Documentation
Loading...
Searching...
No Matches
KisHsvColorSlider.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022 Sam Linnfer <littlelightlittlefire@gmail.com>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6#ifndef _KIS_HSV_COLOR_SLIDER_H_
7#define _KIS_HSV_COLOR_SLIDER_H_
8
9#include <kselector.h>
10#include "kritawidgets_export.h"
12
13class KoColor;
14
15// Same as the KoColorSlider, except mixing is done with HSV values.
16class KRITAWIDGETS_EXPORT KisHsvColorSlider : public KSelector
17{
18 Q_OBJECT
19
20public:
21 enum class MIX_MODE {
22 COLOR_SPACE, HSV, HSL, HSI, HSY,
23 };
24
25 explicit KisHsvColorSlider(QWidget *parent = 0, KoColorDisplayRendererInterface *displayRenderer = KoDumbColorDisplayRenderer::instance());
26 explicit KisHsvColorSlider(Qt::Orientation orientation, QWidget *parent = 0, KoColorDisplayRendererInterface *displayRenderer = KoDumbColorDisplayRenderer::instance());
27 ~KisHsvColorSlider() override;
28
29 void setColors(const KoColor minColor, const KoColor maxColor);
30 void setColors(const QColor minColor, const QColor maxColor);
31 void setColors(qreal minH, qreal minS, qreal minV, qreal maxH, qreal maxS, qreal maxV);
32
33 void setMixMode(MIX_MODE mode);
34
35 void setCircularHue(bool);
36
37protected:
38 void drawContents(QPainter*) override;
39 void drawArrow(QPainter *painter, const QPoint &pos) override;
40
41 QPoint calcArrowPos(int value);
42
43 struct Private;
44 Private* const d;
45};
46
47#endif
float value(const T *src, size_t ch)
static KoColorDisplayRendererInterface * instance()
Definition flatten.c:229