#include <list>
+#include <QPen>
+
class QAction;
+class QMenu;
+class QWidget;
namespace pv {
+
+namespace widgets {
+class Popup;
+}
+
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 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