subsurface/stats/legend.h
Berthold Stoeger 144e81e8f8 statistics: make fonts themeable
Move the various font objects the the StatsTheme structure to enable
different font weights for different themes.

For the dark theme, switch to a bold font, because the thin white
font was barely visible.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2022-03-16 15:26:54 -07:00

41 lines
1 KiB
C++

// SPDX-License-Identifier: GPL-2.0
// A legend box, which is shown on the chart.
#ifndef STATS_LEGEND_H
#define STATS_LEGEND_H
#include "chartitem.h"
#include <memory>
#include <vector>
class QFontMetrics;
class StatsTheme;
class Legend : public ChartRectItem {
public:
Legend(StatsView &view, const std::vector<QString> &names);
void resize(); // called when the chart size changes.
void setPos(QPointF pos); // Attention: not virtual - always call on this class.
private:
// Each entry is a text besides a rectangle showing the color
struct Entry {
QString name;
QBrush rectBrush;
QPointF pos;
double width;
Entry(const QString &name, int idx, int numBins, const QFontMetrics &fm, const StatsTheme &);
};
int displayedItems;
double width;
double height;
const StatsTheme &theme; // Set once in constructor.
// The position is specified with respect to the center and in relative terms
// with respect to the canvas.
QPointF centerPos;
bool posInitialized;
int fontHeight;
std::vector<Entry> entries;
void hide();
};
#endif