Cockatrice 2026-09-01-Development-3.1.0-beta.10
A 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
82 void enterEvent(QEnterEvent *event) override;
83
87 void leaveEvent(QEvent *event) override;
88
92 void mouseMoveEvent(QMouseEvent *event) override;
93
94private:
96 QList<QPair<QString, int>> colors;
97
99 bool isHovered = false;
100
102 double minRatioThreshold = 0.0;
103
110 QColor colorFromName(const QString &name) const;
111
118 QString tooltipForPosition(int x) const;
119};
120
121#endif // COCKATRICE_COLOR_BAR_H
QColor colorFromName(const QString &name) const
Converts a color name into a display QColor.
Definition color_bar.cpp:140
QList< QPair< QString, int > > colors
Map of color keys to counts used for rendering.
Definition color_bar.h:96
bool isHovered
True if the mouse is currently inside the widget.
Definition color_bar.h:99
ColorBar(const QMap< QString, int > &colors, QWidget *parent=nullptr)
Constructs a ColorBar widget.
Definition color_bar.cpp:10
void leaveEvent(QEvent *event) override
Handles mouse hover leaving.
Definition color_bar.cpp:92
void enterEvent(QEnterEvent *event) override
Handles mouse hover entering.
Definition color_bar.cpp:86
void mouseMoveEvent(QMouseEvent *event) override
Handles mouse movement to update contextual tooltips.
Definition color_bar.cpp:97
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:22
double minRatioThreshold
Minimum ratio a segment must exceed to be drawn.
Definition color_bar.h:102
void paintEvent(QPaintEvent *event) override
Paints the color distribution bar.
Definition color_bar.cpp:27
QString tooltipForPosition(int x) const
Returns tooltip text for a given x-coordinate in the bar.
Definition color_bar.cpp:112
void setColors(const QMap< QString, int > &colors)
Updates the color distribution map.
Definition color_bar.cpp:16