X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=pv%2Fview%2Fselectableitem.h;h=d815bc7007507a2bbdb2d58fc675221cd5918cb0;hb=0dda6fe595932b2e340930104fad8ac4fc574895;hp=323c87e18743ff894255137af83cbc86c6fce5c3;hpb=9b6378f147671e62f57887d51d01864d20e01475;p=pulseview.git diff --git a/pv/view/selectableitem.h b/pv/view/selectableitem.h index 323c87e1..d815bc70 100644 --- a/pv/view/selectableitem.h +++ b/pv/view/selectableitem.h @@ -30,6 +30,11 @@ class QMenu; class QWidget; namespace pv { + +namespace widgets { +class Popup; +} + namespace view { class SelectableItem : public QObject @@ -44,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; @@ -53,13 +58,38 @@ public: */ void select(bool select = true); -public: - virtual void init_context_bar_actions(QWidget *parent) = 0; + /** + * Returns true if the item is being dragged. + */ + bool dragging() const; - virtual const std::list get_context_bar_actions() = 0; + /** + * 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(); @@ -68,6 +98,7 @@ protected: private: bool _selected; + QPoint _drag_point; }; } // namespace view