digiKam
Loading...
Searching...
No Matches
dgradientslider.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 : 2008-07-03
7 * Description : a color gradient slider
8 *
9 * SPDX-FileCopyrightText: 2008-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2008 by Cyrille Berger <cberger at cberger dot net>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Qt includes
19
20#include <QWidget>
21#include <QColor>
22
23// Local includes
24
25#include "digikam_export.h"
26
27namespace Digikam
28{
29
30class DIGIKAM_EXPORT DGradientSlider : public QWidget
31{
32 Q_OBJECT
33
34public:
35
36 explicit DGradientSlider(QWidget* const parent = nullptr);
37 ~DGradientSlider() override;
38
39 void showMiddleCursor(bool b);
40 double leftValue() const;
41 double rightValue() const;
42 double middleValue() const;
43 int gradientOffset() const;
44
45 void setColors(const QColor& lcolor,
46 const QColor& rcolor);
47
48public Q_SLOTS:
49
50 void setLeftValue(double);
51 void setRightValue(double);
52 void setMiddleValue(double);
53
54Q_SIGNALS:
55
56 void leftValueChanged(double);
57 void rightValueChanged(double);
58 void middleValueChanged(double);
59
60protected:
61
62 void paintEvent(QPaintEvent*) override;
63 void mousePressEvent(QMouseEvent*) override;
64 void mouseReleaseEvent(QMouseEvent*) override;
65 void mouseMoveEvent(QMouseEvent*) override;
66 void leaveEvent(QEvent*) override;
67
68private:
69
70 void adjustMiddleValue(double newLeftValue,
71 double newRightValue);
72 inline void drawCursorAt(QPainter& painter,
73 double pos,
74 const QColor& brushColor,
75 int width,
76 int height,
77 int gradientWidth);
78
79private:
80
81 class Private;
82 Private* const d = nullptr;
83};
84
85} // namespace Digikam
Definition dgradientslider.h:31
void leftValueChanged(double)
void rightValueChanged(double)
void middleValueChanged(double)
Definition datefolderview.cpp:34