Mercurial > hg > easaier-soundaccess
diff widgets/Plotter.h @ 211:fbd4905ada5e
add plotter
| author | benoitrigolleau |
|---|---|
| date | Fri, 01 Feb 2008 15:46:16 +0000 |
| parents | |
| children | 7d5d51145b81 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/widgets/Plotter.h Fri Feb 01 15:46:16 2008 +0000 @@ -0,0 +1,60 @@ +/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ + +/* Sound Access + EASAIER client application. + Silogic 2007. Benoit Rigolleau. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. See the file + COPYING included with this distribution for more information. +*/ + + +#ifndef PLOTTER_H +#define PLOTTER_H + +#include <QMap> +#include <QPixmap> +#include <QVector> +#include <QWidget> + + +class Plotter : public QWidget +{ + Q_OBJECT + +public: + Plotter(QWidget *parent = 0); + + void setCurveData(const QVector<QPoint> &data); + void clearCurve(); + void setSignalSize(int m_signalWidth, int m_signalHeight); + void setMargin(int margin); + +protected: + void paintEvent(QPaintEvent *event); + void resizeEvent(QResizeEvent *event); + void mousePressEvent(QMouseEvent *event); + void mouseMoveEvent(QMouseEvent *event); + void mouseReleaseEvent(QMouseEvent *event); + +private: + void refreshPixmap(); + void drawGrid(QPainter *painter); + void drawCurve(QPainter *painter); + void drawMaskCurve(QPainter *painter); + QVector<QPoint> m_curve; + int *m_curveMask; + QPixmap m_pixmap; + int m_signalHeight; + int m_signalWidth; + int m_margin; + bool m_curveMaskActive; + QPoint m_lastPoint; +}; + + +#endif +
