Mercurial > hg > easaier-soundaccess
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 |