view widgets/Plotter.h @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents e006f4a57f86
children
line wrap: on
line source
/* -*- 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);

signals:
	void filterChanged(QVector<float>&);

public slots:
	void setCurve(float *);
	void setFilter(float *);
	void enableDrawCurve(bool);


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;
	QVector<float> m_curveMask;
	QVector<float> m_oldCurveMask;
    QPixmap m_pixmap;
	int m_signalHeight;
	int m_signalWidth;
	int m_margin;
	bool m_curveMaskActive;
	QPoint m_lastPoint;

	bool m_enableDrawCurve;
};


#endif