]> sigrok.org Git - pulseview.git/blobdiff - pv/view/analogsignal.hpp
AnalogSignal: Implement vertical grid
[pulseview.git] / pv / view / analogsignal.hpp
index aa53f9ddb25ab49c500a93c56f6c4660c879eab5..dd2b31dc74f20e4d536accc5652c125af29d5947 100644 (file)
@@ -37,8 +37,8 @@ namespace view {
 class AnalogSignal : public Signal
 {
 private:
-       static const int NominalHeight;
        static const QColor SignalColours[4];
+       static const QColor GridMajorColor, GridMinorColor;
 
        static const float EnvelopeThreshold;
 
@@ -47,7 +47,7 @@ public:
                std::shared_ptr<sigrok::Channel> channel,
                std::shared_ptr<pv::data::Analog> data);
 
-       virtual ~AnalogSignal();
+       virtual ~AnalogSignal() = default;
 
        std::shared_ptr<pv::data::SignalData> data() const;
 
@@ -79,17 +79,19 @@ public:
         * Paints the background layer of the signal with a QPainter
         * @param p the QPainter to paint into.
         * @param pp the painting parameters object to paint with..
-        **/
+        */
        void paint_back(QPainter &p, const ViewItemPaintParams &pp);
 
        /**
         * Paints the mid-layer of the signal with a QPainter
         * @param p the QPainter to paint into.
         * @param pp the painting parameters object to paint with..
-        **/
+        */
        void paint_mid(QPainter &p, const ViewItemPaintParams &pp);
 
 private:
+       void paint_grid(QPainter &p, int y, int left, int right);
+
        void paint_trace(QPainter &p,
                const std::shared_ptr<pv::data::AnalogSegment> &segment,
                int y, int left, const int64_t start, const int64_t end,
@@ -110,6 +112,9 @@ private:
 
        int scale_index_;
        int scale_index_drag_offset_;
+
+       int div_height_;
+       int vdivs_;  // divs per positive/negative side
 };
 
 } // namespace view