KSeExpr 6.0.0.0
ExprColorSwatch.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2011-2019 Disney Enterprises, Inc.
2// SPDX-License-Identifier: LicenseRef-Apache-2.0
3// SPDX-FileCopyrightText: 2020 L. E. Segovia <amy@amyspark.me>
4// SPDX-License-Identifier: GPL-3.0-or-later
5
6#pragma once
7
8#include <KSeExpr/Vec.h>
9#include <QFrame>
10#include <QObject>
11#include <QWidget>
12#include <vector>
13
14class QGridLayout;
15
16class ExprColorFrame : public QFrame
17{
18 Q_OBJECT
19public:
20 ExprColorFrame(KSeExpr::Vec3d value, QWidget *parent = nullptr);
21 ~ExprColorFrame() override = default;
22
23 void setValue(const KSeExpr::Vec3d &value);
25 bool selected() const
26 {
27 return _selected;
28 };
29
30protected:
31 void paintEvent(QPaintEvent *event) override;
32 void mouseReleaseEvent(QMouseEvent *event) override;
33
34private Q_SLOTS:
35 void deleteSwatchMenu(const QPoint &pos);
36
37Q_SIGNALS:
39 void swatchChanged(QColor color);
41
42private:
44 QColor _color {};
45 bool _selected {};
46};
47
48// Simple color widget with or without index label
49class ExprColorWidget : public QWidget
50{
51 Q_OBJECT
52public:
53 ExprColorWidget(KSeExpr::Vec3d value, int index, bool indexLabel, QWidget *parent);
55
56private:
58};
59
60class ExprColorSwatchWidget : public QWidget
61{
62 Q_OBJECT
63
64public:
65 ExprColorSwatchWidget(bool indexLabel, QWidget *parent = nullptr);
66 ~ExprColorSwatchWidget() override = default;
67
68 // Convenience Functions
69 void addSwatch(KSeExpr::Vec3d &val, int index = -1);
70 void setSwatchColor(int index, QColor color);
71 QColor getSwatchColor(int index);
72
73private Q_SLOTS:
74 void addNewColor();
76 void internalSwatchChanged(QColor color);
77
78Q_SIGNALS:
80 void swatchChanged(int index, KSeExpr::Vec3d val);
81 void swatchAdded(int index, KSeExpr::Vec3d val);
82 void swatchRemoved(int index);
83
84private:
85 QGridLayout *_gridLayout;
88};
void setValue(const KSeExpr::Vec3d &value)
void deleteSwatchMenu(const QPoint &pos)
void swatchChanged(QColor color)
void mouseReleaseEvent(QMouseEvent *event) override
void selValChangedSignal(KSeExpr::Vec3d value)
~ExprColorFrame() override=default
KSeExpr::Vec3d getValue() const
KSeExpr::Vec3d _value
void paintEvent(QPaintEvent *event) override
void deleteSwatch(ExprColorFrame *swatch)
bool selected() const
QGridLayout * _gridLayout
void swatchRemoved(int index)
void setSwatchColor(int index, QColor color)
void removeSwatch(ExprColorFrame *)
void selValChangedSignal(KSeExpr::Vec3d val)
void internalSwatchChanged(QColor color)
void swatchAdded(int index, KSeExpr::Vec3d val)
void addSwatch(KSeExpr::Vec3d &val, int index=-1)
~ExprColorSwatchWidget() override=default
void swatchChanged(int index, KSeExpr::Vec3d val)
QColor getSwatchColor(int index)
ExprColorFrame * getColorFrame()
ExprColorFrame * _colorFrame