]> sigrok.org Git - pulseview.git/commitdiff
Added axes to each signal
authorJoel Holdsworth <redacted>
Sat, 19 Jan 2013 08:22:12 +0000 (08:22 +0000)
committerJoel Holdsworth <redacted>
Sat, 19 Jan 2013 21:00:09 +0000 (21:00 +0000)
pv/view/analogsignal.cpp
pv/view/logicsignal.cpp
pv/view/signal.cpp
pv/view/signal.h

index 136080694bbb03029c21691efe0b9b3293ac5c3c..7ea6a6fd87408f733af9f74cc8f1144d85c5f12e 100644 (file)
@@ -46,6 +46,8 @@ void AnalogSignal::paint(QPainter &p, int y, int left, int right, double scale,
        assert(_data);
        assert(right >= left);
 
        assert(_data);
        assert(right >= left);
 
+       paint_axis(p, y, left, right);
+
        const deque< shared_ptr<pv::data::AnalogSnapshot> > &snapshots =
                _data->get_snapshots();
        if (snapshots.empty())
        const deque< shared_ptr<pv::data::AnalogSnapshot> > &snapshots =
                _data->get_snapshots();
        if (snapshots.empty())
index 051da4d89af92ef1694c88cdd08901c487a15b2b..568d10b383652a438ddb88c8be09b44a6ac81e27 100644 (file)
@@ -76,6 +76,8 @@ void LogicSignal::paint(QPainter &p, int y, int left, int right,
        assert(_data);
        assert(right >= left);
 
        assert(_data);
        assert(right >= left);
 
+       paint_axis(p, y, left, right);
+
        const float high_offset = y - View::SignalHeight + 0.5f;
        const float low_offset = y + 0.5f;
 
        const float high_offset = y - View::SignalHeight + 0.5f;
        const float low_offset = y + 0.5f;
 
index 2469d981632b59d9f8eaadb0b8cc2248d41e831c..ed414c7c510c13b60c0f6225bd93d69a443b16c2 100644 (file)
@@ -31,6 +31,8 @@ namespace view {
 const int Signal::LabelHitPadding = 2;
 const int Signal::LabelHighlightRadius = 6;
 
 const int Signal::LabelHitPadding = 2;
 const int Signal::LabelHighlightRadius = 6;
 
+const QPen Signal::SignalAxisPen(QColor(128, 128, 128, 64));
+
 Signal::Signal(QString name) :
        _name(name),
        _v_offset(0),
 Signal::Signal(QString name) :
        _name(name),
        _v_offset(0),
@@ -140,6 +142,12 @@ bool Signal::pt_in_label_rect(int y, int left, int right,
                        ).contains(point);
 }
 
                        ).contains(point);
 }
 
+void Signal::paint_axis(QPainter &p, int y, int left, int right)
+{
+       p.setPen(SignalAxisPen);
+       p.drawLine(QPointF(left, y + 0.5f), QPointF(right, y + 0.5f));
+}
+
 void Signal::compute_text_size(QPainter &p)
 {
        _text_size = p.boundingRect(QRectF(), 0, _name).size();
 void Signal::compute_text_size(QPainter &p)
 {
        _text_size = p.boundingRect(QRectF(), 0, _name).size();
index c35f557dcd7ac66a9ed6b80a5f7e563d6957fe92..250d3ff36bf04c90ba542629e062f3aba8d99cd2 100644 (file)
@@ -25,6 +25,7 @@
 
 #include <QColor>
 #include <QPainter>
 
 #include <QColor>
 #include <QPainter>
+#include <QPen>
 #include <QRect>
 #include <QString>
 
 #include <QRect>
 #include <QString>
 
@@ -44,6 +45,8 @@ private:
        static const int LabelHitPadding;
        static const int LabelHighlightRadius;
 
        static const int LabelHitPadding;
        static const int LabelHighlightRadius;
 
+       static const QPen SignalAxisPen;
+
 protected:
        Signal(QString name);
 
 protected:
        Signal(QString name);
 
@@ -124,6 +127,17 @@ public:
        bool pt_in_label_rect(int y, int left, int right,
                const QPoint &point);
 
        bool pt_in_label_rect(int y, int left, int right,
                const QPoint &point);
 
+protected:
+
+       /**
+        * Paints a zero axis across the viewport.
+        * @param p the QPainter to paint into.
+        * @param y the y-offset of the axis.
+        * @param left the x-coordinate of the left edge of the view.
+        * @param right the x-coordinate of the right edge of the view.
+        */
+       void paint_axis(QPainter &p, int y, int left, int right);
+
 private:
 
        /**
 private:
 
        /**