]> sigrok.org Git - pulseview.git/blobdiff - pv/view/trace.hpp
Revert "Make traces only selectable in the header area"
[pulseview.git] / pv / view / trace.hpp
index e6e053dac26c114828843b508a13c4bdb4819067..acaa341adbadd55f477e32d1f3e01d9cd4c662f6 100644 (file)
@@ -18,8 +18,8 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#ifndef PULSEVIEW_PV_VIEW_TRACE_H
-#define PULSEVIEW_PV_VIEW_TRACE_H
+#ifndef PULSEVIEW_PV_VIEW_TRACE_HPP
+#define PULSEVIEW_PV_VIEW_TRACE_HPP
 
 #include <QColor>
 #include <QPainter>
@@ -29,7 +29,7 @@
 
 #include <stdint.h>
 
-#include "rowitem.hpp"
+#include "tracetreeitem.hpp"
 
 class QFormLayout;
 
@@ -41,7 +41,7 @@ class Popup;
 
 namespace view {
 
-class Trace : public RowItem
+class Trace : public TraceTreeItem
 {
        Q_OBJECT
 
@@ -49,6 +49,9 @@ private:
        static const QPen AxisPen;
        static const int LabelHitPadding;
 
+       static const QColor BrightBGColour;
+       static const QColor DarkBGColour;
+
 protected:
        Trace(QString name);
 
@@ -73,12 +76,22 @@ public:
         */
        void set_colour(QColor colour);
 
+       /**
+        * Enables or disables the coloured background for this trace.
+        */
+       void set_coloured_bg(bool state);
+
+       /**
+        * Returns true if the item may be dragged/moved.
+        */
+       bool is_draggable() const;
+
        /**
         * Computes the outline rectangle of the viewport hit-box.
         * @param rect the rectangle of the viewport area.
         * @return Returns the rectangle of the hit-box.
         */
-       QRectF hit_box_rect(const QRectF &rect) const;
+       QRectF hit_box_rect(const ViewItemPaintParams &pp) const;
 
        /**
         * Paints the signal label.
@@ -100,6 +113,13 @@ public:
        QRectF label_rect(const QRectF &rect) const;
 
 protected:
+       /**
+        * 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.
+        */
+       virtual void paint_back(QPainter &p, const ViewItemPaintParams &pp);
+
        /**
         * Paints a zero axis across the viewport.
         * @param p the QPainter to paint into.
@@ -123,7 +143,8 @@ private Q_SLOTS:
 
 protected:
        QString name_;
-       QColor colour_;
+       QColor colour_, bgcolour_;
+       bool coloured_bg_, coloured_bg_state_;
 
 private:
        pv::widgets::Popup *popup_;
@@ -133,4 +154,4 @@ private:
 } // namespace view
 } // namespace pv
 
-#endif // PULSEVIEW_PV_VIEW_TRACE_H
+#endif // PULSEVIEW_PV_VIEW_TRACE_HPP