#include <list>
-#include <QObject>
+#include <QPen>
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