]> sigrok.org Git - pulseview.git/blobdiff - signal.h
Replaced mainwindow.ui XML with code
[pulseview.git] / signal.h
index 2cec1299e0cce040cf78d90a0441933c4512e9ce..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,8 +31,11 @@ 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;
@@ -40,14 +44,33 @@ public:
         * 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 scale the scale in seconds per pixel.
         * @param offset the time to show at the left hand edge of
-        *   the view in femtoseconds.
+        *   the view in seconds.
         **/
        virtual void paint(QGLWidget &widget, const QRect &rect,
-               uint64_t scale, int64_t offset) = 0;
+               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;
 };