]> sigrok.org Git - pulseview.git/blobdiff - signal.h
Removed OpenGL from pv::view::Viewport
[pulseview.git] / signal.h
index ac23a3fa214a81255855934d13cb2f64430e9b07..7d59bb44021d7efe44074425eeb1a534bf453152 100644 (file)
--- a/signal.h
+++ b/signal.h
@@ -20,7 +20,7 @@
 
 #include <boost/shared_ptr.hpp>
 
-#include <QGLWidget>
+#include <QPainter>
 #include <QRect>
 #include <QString>
 
@@ -30,6 +30,9 @@ class SignalData;
 
 class Signal
 {
+private:
+       static const QSizeF LabelPadding;
+
 protected:
        Signal(QString name);
 
@@ -37,15 +40,35 @@ public:
        QString get_name() const;
 
        /**
-        * Paints the signal into a QGLWidget.
-        * @param widget the QGLWidget to paint into.
+        * Paints the signal with a QPainter
+        * @param p the QPainter 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;
+       virtual void paint(QPainter &p, 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;