class QWidget;
namespace pv {
+
+namespace widgets {
+class Popup;
+}
+
namespace view {
class SelectableItem : public QObject
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;
*/
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<QAction*> 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();
private:
bool _selected;
+ QPoint _drag_point;
};
} // namespace view