mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-27 20:58:47 +00:00
b5aac29cea
To enable rudimentary theming, collect all colors in a new theme class. The class has to be passed down to the various items. In general the items save a reference to the them in the constructor. Alternatively, they might also just query the StatsView everytime they need to access a color. For now, it's hard the say what is preferred: a reference per item or a function call per invokation? Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
39 lines
1.4 KiB
C++
39 lines
1.4 KiB
C++
// SPDX-License-Identifier: GPL-2.0
|
|
// Base class for all series. Defines a small virtual interface
|
|
// concerning highlighting of series items.
|
|
#ifndef STATS_SERIES_H
|
|
#define STATS_SERIES_H
|
|
|
|
#include "statsselection.h"
|
|
|
|
#include <vector>
|
|
#include <QPointF>
|
|
|
|
class StatsAxis;
|
|
class StatsTheme;
|
|
class StatsView;
|
|
struct dive;
|
|
class QRectF;
|
|
|
|
class StatsSeries {
|
|
public:
|
|
StatsSeries(StatsView &view, StatsAxis *xAxis, StatsAxis *yAxis);
|
|
virtual ~StatsSeries();
|
|
virtual void updatePositions() = 0; // Called if chart geometry changes.
|
|
virtual bool hover(QPointF pos) = 0; // Called on mouse movement. Return true if an item of this series is highlighted.
|
|
virtual void unhighlight() = 0; // Unhighlight any highlighted item.
|
|
// Returns true if an item was under the mouse.
|
|
virtual bool selectItemsUnderMouse(const QPointF &pos, SelectionModifier modifier) = 0;
|
|
virtual bool supportsLassoSelection() const;
|
|
// Needs only be defined if supportsLassoSelection() returns true.
|
|
virtual void selectItemsInRect(const QRectF &rect, SelectionModifier modifier, const std::vector<dive *> &oldSelection);
|
|
virtual void divesSelected(const QVector<dive *> &dives) = 0;
|
|
|
|
protected:
|
|
StatsView &view;
|
|
const StatsTheme &theme; // Theme is only set once in the constructor
|
|
StatsAxis *xAxis, *yAxis; // May be zero for charts without axes (pie charts).
|
|
QPointF toScreen(QPointF p);
|
|
};
|
|
|
|
#endif
|