]> sigrok.org Git - pulseview.git/blobdiff - signal.h
Replaced mainwindow.ui XML with code
[pulseview.git] / signal.h
index ee051dca62d315ebe307ea1d51ce520c4a5858b5..edab476deb7d31c22f0b16929c2221e82e05cb1a 100644 (file)
--- a/signal.h
+++ b/signal.h
@@ -21,6 +21,7 @@
 #include <boost/shared_ptr.hpp>
 
 #include <QGLWidget>
+#include <QPainter>
 #include <QRect>
 #include <QString>
 
@@ -30,15 +31,46 @@ class SignalData;
 
 class Signal
 {
+private:
+       static const QSizeF LabelPadding;
+
 protected:
-       Signal(QString name, boost::shared_ptr<SignalData> data);
+       Signal(QString name);
 
 public:
        QString get_name() const;
 
-       virtual void paint(QGLWidget &widget, const QRect &rect) = 0;
+       /**
+        * 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 seconds per pixel.
+        * @param offset the time to show at the left hand edge of
+        *   the view in seconds.
+        **/
+       virtual void paint(QGLWidget &widget, const QRect &rect,
+               double scale, double offset) = 0;
+
+       /**
+        * Paints the signal label into a QGLWidget.
+        * @param p the QPainter to paint into.
+        * @param rect the rectangular area to draw the label into.
+        */
+       virtual void paint_label(QPainter &p, const QRect &rect);
+
+protected:
+
+       /**
+        * Get the colour of the logic signal
+        */
+       virtual QColor get_colour() const = 0;
+
+       /**
+        * When painting into the rectangle, calculate the y
+        * offset of the zero point.
+        **/
+       virtual int get_nominal_offset(const QRect &rect) const = 0;
 
 protected:
        QString _name;
-       boost::shared_ptr<SignalData> _data;
 };