annotate widgets/Plotter.h @ 211:fbd4905ada5e

add plotter
author benoitrigolleau
date Fri, 01 Feb 2008 15:46:16 +0000
parents
children 7d5d51145b81
rev   line source
benoitrigolleau@211 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
benoitrigolleau@211 2
benoitrigolleau@211 3 /* Sound Access
benoitrigolleau@211 4 EASAIER client application.
benoitrigolleau@211 5 Silogic 2007. Benoit Rigolleau.
benoitrigolleau@211 6
benoitrigolleau@211 7 This program is free software; you can redistribute it and/or
benoitrigolleau@211 8 modify it under the terms of the GNU General Public License as
benoitrigolleau@211 9 published by the Free Software Foundation; either version 2 of the
benoitrigolleau@211 10 License, or (at your option) any later version. See the file
benoitrigolleau@211 11 COPYING included with this distribution for more information.
benoitrigolleau@211 12 */
benoitrigolleau@211 13
benoitrigolleau@211 14
benoitrigolleau@211 15 #ifndef PLOTTER_H
benoitrigolleau@211 16 #define PLOTTER_H
benoitrigolleau@211 17
benoitrigolleau@211 18 #include <QMap>
benoitrigolleau@211 19 #include <QPixmap>
benoitrigolleau@211 20 #include <QVector>
benoitrigolleau@211 21 #include <QWidget>
benoitrigolleau@211 22
benoitrigolleau@211 23
benoitrigolleau@211 24 class Plotter : public QWidget
benoitrigolleau@211 25 {
benoitrigolleau@211 26 Q_OBJECT
benoitrigolleau@211 27
benoitrigolleau@211 28 public:
benoitrigolleau@211 29 Plotter(QWidget *parent = 0);
benoitrigolleau@211 30
benoitrigolleau@211 31 void setCurveData(const QVector<QPoint> &data);
benoitrigolleau@211 32 void clearCurve();
benoitrigolleau@211 33 void setSignalSize(int m_signalWidth, int m_signalHeight);
benoitrigolleau@211 34 void setMargin(int margin);
benoitrigolleau@211 35
benoitrigolleau@211 36 protected:
benoitrigolleau@211 37 void paintEvent(QPaintEvent *event);
benoitrigolleau@211 38 void resizeEvent(QResizeEvent *event);
benoitrigolleau@211 39 void mousePressEvent(QMouseEvent *event);
benoitrigolleau@211 40 void mouseMoveEvent(QMouseEvent *event);
benoitrigolleau@211 41 void mouseReleaseEvent(QMouseEvent *event);
benoitrigolleau@211 42
benoitrigolleau@211 43 private:
benoitrigolleau@211 44 void refreshPixmap();
benoitrigolleau@211 45 void drawGrid(QPainter *painter);
benoitrigolleau@211 46 void drawCurve(QPainter *painter);
benoitrigolleau@211 47 void drawMaskCurve(QPainter *painter);
benoitrigolleau@211 48 QVector<QPoint> m_curve;
benoitrigolleau@211 49 int *m_curveMask;
benoitrigolleau@211 50 QPixmap m_pixmap;
benoitrigolleau@211 51 int m_signalHeight;
benoitrigolleau@211 52 int m_signalWidth;
benoitrigolleau@211 53 int m_margin;
benoitrigolleau@211 54 bool m_curveMaskActive;
benoitrigolleau@211 55 QPoint m_lastPoint;
benoitrigolleau@211 56 };
benoitrigolleau@211 57
benoitrigolleau@211 58
benoitrigolleau@211 59 #endif
benoitrigolleau@211 60