Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
color_bar.h
Go to the documentation of this file.
1#ifndef COCKATRICE_COLOR_BAR_H
2#define COCKATRICE_COLOR_BAR_H
3
4#include <QColor>
5#include <QMap>
6#include <QString>
7#include <QWidget>
8
30class ColorBar : public QWidget
31{
32 Q_OBJECT
33
34public:
41 explicit ColorBar(const QMap<QString, int> &colors, QWidget *parent = nullptr);
42
49 void setColors(const QMap<QString, int> &colors);
50
58 void setMinPercentThreshold(double treshold)
59 {
60 minRatioThreshold = treshold / 100.0;
61 }
62
66 QSize minimumSizeHint() const override;
67
68protected:
77 void paintEvent(QPaintEvent *event) override;
78
79#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
83 void enterEvent(QEnterEvent *event) override;
84#else
88 void enterEvent(QEvent *event) override;
89#endif
90
94 void leaveEvent(QEvent *event) override;
95
99 void mouseMoveEvent(QMouseEvent *event) override;
100
101private:
103 QMap<QString, int> colors;
104
106 bool isHovered = false;
107
109 double minRatioThreshold = 0.0;
110
117 QColor colorFromName(const QString &name) const;
118
125 QString tooltipForPosition(int x) const;
126};
127
128#endif // COCKATRICE_COLOR_BAR_H
QColor colorFromName(const QString &name) const
Converts a color name into a display QColor.
Definition color_bar.cpp:148
QMap< QString, int > colors
Map of color keys to counts used for rendering.
Definition color_bar.h:103
bool isHovered
True if the mouse is currently inside the widget.
Definition color_bar.h:106
ColorBar(const QMap< QString, int > &colors, QWidget *parent=nullptr)
Constructs a ColorBar widget.
Definition color_bar.cpp:9
void leaveEvent(QEvent *event) override
Handles mouse hover leaving.
Definition color_bar.cpp:100
void enterEvent(QEnterEvent *event) override
Handles mouse hover entering (Qt6 version).
Definition color_bar.cpp:87
void mouseMoveEvent(QMouseEvent *event) override
Handles mouse movement to update contextual tooltips.
Definition color_bar.cpp:105
void setMinPercentThreshold(double treshold)
Sets a minimum percentage threshold below which segments are not drawn.
Definition color_bar.h:58
QSize minimumSizeHint() const override
Returns the recommended minimum size.
Definition color_bar.cpp:20
double minRatioThreshold
Minimum ratio a segment must exceed to be drawn.
Definition color_bar.h:109
void paintEvent(QPaintEvent *event) override
Paints the color distribution bar.
Definition color_bar.cpp:25
QString tooltipForPosition(int x) const
Returns tooltip text for a given x-coordinate in the bar.
Definition color_bar.cpp:123
void setColors(const QMap< QString, int > &colors)
Updates the color distribution map.
Definition color_bar.cpp:14