benoitrigolleau@211: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ benoitrigolleau@211: benoitrigolleau@211: /* Sound Access benoitrigolleau@211: EASAIER client application. benoitrigolleau@211: Silogic 2007. Benoit Rigolleau. benoitrigolleau@211: benoitrigolleau@211: This program is free software; you can redistribute it and/or benoitrigolleau@211: modify it under the terms of the GNU General Public License as benoitrigolleau@211: published by the Free Software Foundation; either version 2 of the benoitrigolleau@211: License, or (at your option) any later version. See the file benoitrigolleau@211: COPYING included with this distribution for more information. benoitrigolleau@211: */ benoitrigolleau@211: benoitrigolleau@211: benoitrigolleau@211: #ifndef PLOTTER_H benoitrigolleau@211: #define PLOTTER_H benoitrigolleau@211: benoitrigolleau@211: #include benoitrigolleau@211: #include benoitrigolleau@211: #include benoitrigolleau@211: #include benoitrigolleau@211: benoitrigolleau@211: benoitrigolleau@211: class Plotter : public QWidget benoitrigolleau@211: { benoitrigolleau@211: Q_OBJECT benoitrigolleau@211: benoitrigolleau@211: public: benoitrigolleau@211: Plotter(QWidget *parent = 0); benoitrigolleau@211: benoitrigolleau@211: void setCurveData(const QVector &data); benoitrigolleau@211: void clearCurve(); benoitrigolleau@211: void setSignalSize(int m_signalWidth, int m_signalHeight); benoitrigolleau@211: void setMargin(int margin); benoitrigolleau@211: lbajardsilogic@229: signals: lbajardsilogic@233: void filterChanged(QVector&); lbajardsilogic@229: lbajardsilogic@229: public slots: lbajardsilogic@229: void setCurve(float *); lbajardsilogic@232: void setFilter(float *); lbajardsilogic@235: void enableDrawCurve(bool); lbajardsilogic@232: lbajardsilogic@229: benoitrigolleau@211: protected: benoitrigolleau@211: void paintEvent(QPaintEvent *event); benoitrigolleau@211: void resizeEvent(QResizeEvent *event); benoitrigolleau@211: void mousePressEvent(QMouseEvent *event); benoitrigolleau@211: void mouseMoveEvent(QMouseEvent *event); benoitrigolleau@211: void mouseReleaseEvent(QMouseEvent *event); benoitrigolleau@211: benoitrigolleau@211: private: benoitrigolleau@211: void refreshPixmap(); benoitrigolleau@211: void drawGrid(QPainter *painter); benoitrigolleau@211: void drawCurve(QPainter *painter); benoitrigolleau@211: void drawMaskCurve(QPainter *painter); benoitrigolleau@211: QVector m_curve; lbajardsilogic@233: QVector m_curveMask; benoitrigolleau@240: QVector m_oldCurveMask; benoitrigolleau@211: QPixmap m_pixmap; benoitrigolleau@211: int m_signalHeight; benoitrigolleau@211: int m_signalWidth; benoitrigolleau@211: int m_margin; benoitrigolleau@211: bool m_curveMaskActive; benoitrigolleau@211: QPoint m_lastPoint; lbajardsilogic@235: lbajardsilogic@235: bool m_enableDrawCurve; benoitrigolleau@211: }; benoitrigolleau@211: benoitrigolleau@211: benoitrigolleau@211: #endif benoitrigolleau@211: