You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.3 KiB
46 lines
1.3 KiB
#ifndef CHARTPLOT_H |
|
#define CHARTPLOT_H |
|
|
|
#include <qwt_plot.h> |
|
#include <qwt_plot_grid.h> |
|
#include <qwt_plot_curve.h> |
|
#include "MainWindow.h" |
|
#include "ScrollZoomer.h" |
|
|
|
class ChartPlot : public QwtPlot |
|
{ |
|
Q_OBJECT |
|
public: |
|
ChartPlot(QWidget *parent = NULL); |
|
virtual ~ChartPlot(); |
|
|
|
/** @brief Get next color of color map */ |
|
QColor getNextColor(); |
|
|
|
/** @brief Get color for curve id */ |
|
QColor getColorForCurve(const QString &id); |
|
|
|
/** @brief Reset color map */ |
|
void shuffleColors(); |
|
|
|
public slots: |
|
|
|
/** @brief Generate coloring for this plot canvas based on current window theme */ |
|
void styleChanged(MainWindow::QGC_MAINWINDOW_STYLE style); |
|
|
|
protected: |
|
const static int numColors = 20; |
|
const static QColor baseColors[numColors]; |
|
QList<QColor> colors; ///< Colormap for curves |
|
int nextColorIndex; ///< Next index in color map |
|
QMap<QString, QwtPlotCurve* > curves; ///< Plot curves |
|
ScrollZoomer* zoomer; ///< Zoomer class for widget |
|
QwtPlotGrid* grid; ///< Plot grid |
|
|
|
float symbolWidth; ///< Width of curve symbols in pixels |
|
float curveWidth; ///< Width of curve lines in pixels |
|
float gridWidth; ///< Width of gridlines in pixels |
|
float zoomerWidth; ///< Width of zoomer selection box |
|
}; |
|
|
|
#endif // CHARTPLOT_H
|
|
|