]> sigrok.org Git - pulseview.git/blobdiff - pv/view/selectableitem.h
Header: Keep a shared_ptr of the clicked item
[pulseview.git] / pv / view / selectableitem.h
index fa728c72745924f764c692a88b5fdb91c868aff0..d815bc7007507a2bbdb2d58fc675221cd5918cb0 100644 (file)
@@ -49,7 +49,7 @@ public:
 
 public:
        /**
-        * Returns true if the signal has been selected by the user.
+        * Returns true if the item has been selected by the user.
         */
        bool selected() const;
 
@@ -58,11 +58,38 @@ public:
         */
        void select(bool select = true);
 
+       /**
+        * Returns true if the item is being dragged.
+        */
+       bool dragging() const;
+
+       /**
+        * Retunrns the current drag point.
+        */
+       QPoint drag_point() const;
+
+       /**
+        * Sets this item into the dragged state.
+        */
+       void drag();
+
+       /**
+        * Sets this item into the un-dragged state.
+        */
+       void drag_release();
+
+       /**
+        * Get the drag point.
+        */
+       virtual QPoint point() const = 0;
+
 public:
        virtual QMenu* create_context_menu(QWidget *parent);
 
        virtual pv::widgets::Popup* create_popup(QWidget *parent) = 0;
 
+       virtual void delete_pressed();
+
 protected:
        static QPen highlight_pen();
 
@@ -71,6 +98,7 @@ protected:
 
 private:
        bool _selected;
+       QPoint _drag_point;
 };
 
 } // namespace view