diff --git a/src/data_plot.h b/src/data_plot.h
new file mode 100644
--- /dev/null
+++ b/src/data_plot.h
@@ -0,0 +1,86 @@
+/*
+ *
+ * $Id$
+ *
+ * This file is part of the Virtual Leaf.
+ *
+ * The Virtual Leaf 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * The Virtual Leaf is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with the Virtual Leaf. If not, see .
+ *
+ * Copyright 2010 Roeland Merks.
+ *
+ */
+
+#ifndef _DATA_PLOT_H_
+#define _DATA_PLOT_H_
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include "curvecolors.h"
+
+const int PLOT_SIZE = 1000;
+
+class DataPlot : public QwtPlot
+{
+ Q_OBJECT
+
+public:
+ DataPlot(QWidget *parent, const QString title, const QStringList curvenames);
+ virtual ~DataPlot(void);
+public slots:
+ // void setTimerInterval(double interval);
+ void AddValue(double t, double *x);
+
+private:
+ void alignScales();
+
+ double *d_t;
+ double **d_x;
+
+ int d_interval; // timer in ms
+ int d_timerId;
+
+ QwtPlotCurve *curves;
+ int data_pos;
+ int ncurves;
+
+ CurveColors curvecolors;
+
+ protected:
+ // to write contents of DataPlot to a file
+ QFile *datfile;
+ QTextStream datstream;
+
+};
+
+class PlotDialog : public QDialog {
+
+Q_OBJECT
+ public:
+ PlotDialog(QWidget *parent, const QString title, const QStringList curvenames);
+ ~PlotDialog(void);
+ public slots:
+ // void setTimerInterval(double interval);
+ void AddValue(double t, double *x) {
+ //std::cerr << "AddValue receives: " << t << ", " << y << ", " << z << std::endl;
+ plot->AddValue(t,x);
+ }
+ private:
+ DataPlot *plot;
+};
+
+#endif