#include <list>
+#include <QPen>
+
class QAction;
namespace pv {
namespace view {
-class SelectableItem
+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 void init_context_bar_actions(QWidget *parent) = 0;
+
+ virtual const std::list<QAction*> get_context_bar_actions() = 0;
+
+protected:
+ static QPen highlight_pen();
+
+private:
+ bool _selected;
};
} // namespace view