X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fview%2Fselectableitem.h;h=d3217752289e4cea7ceffdc16b59482ddd862471;hp=d54491370bd769a588c82ff544f58d13fb1112cd;hb=a77dac4e7ab85ac97f7ff63862d28948ae4dec61;hpb=2a2512b21581ea346fea7d96bd3deeb37f1cfed4 diff --git a/pv/view/selectableitem.h b/pv/view/selectableitem.h index d5449137..d3217752 100644 --- a/pv/view/selectableitem.h +++ b/pv/view/selectableitem.h @@ -23,17 +23,56 @@ #include -#include +#include class QAction; +class QMenu; +class QWidget; namespace pv { + +namespace widgets { +class Popup; +} + namespace view { class SelectableItem : public QObject { Q_OBJECT +private: + static const int HighlightRadius; + +public: + SelectableItem(); + +public: + /** + * Returns true if the signal has been selected by the user. + */ + bool selected() const; + + /** + * Selects or deselects the signal. + */ + void select(bool select = true); + +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(); + +protected: + QWidget *_context_parent; + +private: + bool _selected; }; } // namespace view