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
+