]> sigrok.org Git - pulseview.git/blobdiff - signal.h
Initial interractive zoom support
[pulseview.git] / signal.h
index 47e1dc915b4e50b873b58b6540c748d105e87cff..d55f6dbed429d4624a6bc22a011d43bed4c808f3 100644 (file)
--- a/signal.h
+++ b/signal.h
  */
 
 #include <boost/shared_ptr.hpp>
+
+#include <QGLWidget>
+#include <QRect>
 #include <QString>
+
 #include <stdint.h>
 
 class SignalData;
@@ -27,12 +31,22 @@ class SignalData;
 class Signal
 {
 protected:
-       Signal(QString name, boost::shared_ptr<SignalData> data);
+       Signal(QString name);
 
 public:
        QString get_name() const;
 
+       /**
+        * Paints the signal into a QGLWidget.
+        * @param widget the QGLWidget to paint into.
+        * @param rect the rectangular area to draw the trace into.
+        * @param scale the scale in femtoseconds per pixel.
+        * @param offset the time to show at the left hand edge of
+        *   the view in femtoseconds.
+        **/
+       virtual void paint(QGLWidget &widget, const QRect &rect,
+               uint64_t scale, int64_t offset) = 0;
+
 protected:
        QString _name;
-       boost::shared_ptr<SignalData> _data;
 };