Make member variable underscores a suffix instead of a prefix
[pulseview.git] / pv / view / selectableitem.h
index d38aca2eb534c3e65575b560d9288b591bda6479..36ff0dbcd48a95adf8626aefe751185adb1c39f7 100644 (file)
 #include <QPen>
 
 class QAction;
+class QMenu;
+class QWidget;
 
 namespace pv {
+
+namespace widgets {
+class Popup;
+}
+
 namespace view {
 
 class SelectableItem : public QObject
@@ -42,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;
 
@@ -51,14 +58,47 @@ 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 const std::list<QAction*> get_context_bar_actions() = 0;
+       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();
 
+protected:
+       QWidget *context_parent_;
+
 private:
-       bool _selected;
+       bool selected_;
+       QPoint drag_point_;
 };
 
 } // namespace view