]> sigrok.org Git - pulseview.git/blobdiff - pv/views/trace/trace.hpp
Fix item dragging
[pulseview.git] / pv / views / trace / trace.hpp
index d6d53045e4bbf69ce68aff934a94195280a40d38..0b4ecce49484af09e8b60938afc5c3069cb3d936 100644 (file)
@@ -102,6 +102,16 @@ public:
         */
        shared_ptr<data::SignalBase> base() const;
 
+       /**
+        * Returns true if the item may be selected.
+        */
+       virtual bool is_selectable(QPoint pos) const;
+
+       /**
+        * Returns true if the item may be dragged/moved.
+        */
+       virtual bool is_draggable(QPoint pos) const;
+
        /**
         * Configures the segment display mode to use.
         */
@@ -117,7 +127,7 @@ public:
         */
        virtual void paint_label(QPainter &p, const QRect &rect, bool hover);
 
-       virtual QMenu* create_context_menu(QWidget *parent);
+       virtual QMenu* create_header_context_menu(QWidget *parent);
 
        pv::widgets::Popup* create_popup(QWidget *parent);
 
@@ -128,6 +138,14 @@ public:
         */
        QRectF label_rect(const QRectF &rect) 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.
+        * @remarks The default implementation returns an empty hit-box.
+        */
+       virtual QRectF hit_box_rect(const ViewItemPaintParams &pp) const;
+
        void set_current_segment(const int segment);
 
        int get_current_segment() const;