digiKam
Loading...
Searching...
No Matches
dcolorvalueselector.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 1997-02-20
7 * Description : color chooser widgets
8 *
9 * SPDX-FileCopyrightText: 1997 by Martin Jones <mjones at kde dot org>
10 * SPDX-FileCopyrightText: 2015-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Qt includes
19
20#include <QPixmap>
21#include <QAbstractSlider>
22
23// Local includes
24
25#include "dcolorchoosermode.h"
26#include "digikam_export.h"
27
28namespace Digikam
29{
30
40class DIGIKAM_EXPORT DSelector : public QAbstractSlider
41{
42 Q_OBJECT
43 Q_PROPERTY(int value READ value WRITE setValue)
44 Q_PROPERTY(int minValue READ minimum WRITE setMinimum)
45 Q_PROPERTY(int maxValue READ maximum WRITE setMaximum)
46 Q_PROPERTY(bool indent READ indent WRITE setIndent)
47 Q_PROPERTY(Qt::ArrowType arrowDirection READ arrowDirection WRITE setArrowDirection)
48
49public:
50
51 explicit DSelector(QWidget* const parent = nullptr);
52 explicit DSelector(Qt::Orientation o, QWidget* const parent = nullptr);
53 ~DSelector() override;
54
58 QRect contentsRect() const;
59
64 void setIndent(bool i);
65
69 bool indent() const;
70
74 void setArrowDirection(Qt::ArrowType direction);
75
79 Qt::ArrowType arrowDirection() const;
80
81protected:
82
89 virtual void drawContents(QPainter*)
90 {
91 };
92
97 virtual void drawArrow(QPainter* painter, const QPoint& pos);
98
99 void paintEvent(QPaintEvent*) override;
100 void mousePressEvent(QMouseEvent* e) override;
101 void mouseMoveEvent(QMouseEvent* e) override;
102 void mouseReleaseEvent(QMouseEvent* e) override;
103 void wheelEvent(QWheelEvent*) override;
104
105private:
106
107 QPoint calcArrowPos(int val);
108 void moveArrow(const QPoint& pos);
109
110private:
111
112 class Private;
113 friend class Private;
114 Private* const d = nullptr;
115
116 Q_DISABLE_COPY(DSelector)
117};
118
119// -----------------------------------------------------------------------------------
120
121class DIGIKAM_EXPORT DColorValueSelector : public DSelector
122{
123 Q_OBJECT
124 Q_PROPERTY( int hue READ hue WRITE setHue)
125 Q_PROPERTY( int saturation READ saturation WRITE setSaturation)
126 Q_PROPERTY( int colorValue READ colorValue WRITE setColorValue)
127
128public:
129
130 explicit DColorValueSelector(QWidget* const parent = nullptr);
131 explicit DColorValueSelector(Qt::Orientation o, QWidget* const parent = nullptr);
132 ~DColorValueSelector() override;
133
137 void updateContents();
138
144 int hue() const;
145
152 void setHue(int hue);
153
159 int saturation() const;
160
167 void setSaturation(int saturation);
168
174 int colorValue() const;
175
182 void setColorValue(int colorValue);
183
190 void setChooserMode(DColorChooserMode chooserMode);
191
197 DColorChooserMode chooserMode() const;
198
199protected:
200
205 virtual void drawPalette(QPixmap*);
206 void resizeEvent(QResizeEvent*) override;
207
213 void drawContents(QPainter*) override;
214
215private:
216
217 class Private;
218 friend class Private;
219 Private* const d = nullptr;
220
221 Q_DISABLE_COPY(DColorValueSelector)
222};
223
224} // namespace Digikam
Definition dcolorvalueselector.h:122
Definition dcolorvalueselector.h:41
qulonglong value
Definition itemviewutilities.cpp:585
Definition datefolderview.cpp:34
DColorChooserMode
Definition dcolorchoosermode.h:22