]> sigrok.org Git - pulseview.git/blobdiff - pv/view/selectableitem.cpp
Header: Keep a shared_ptr of the clicked item
[pulseview.git] / pv / view / selectableitem.cpp
index 517b6879120c2b71f34670df4a23b1caa154cae0..6331575a4016b7afcf529688e8a66b1342cdefff 100644 (file)
 
 #include "selectableitem.h"
 
+#include <climits>
+
+#include <QApplication>
+#include <QMenu>
+#include <QPalette>
+
 namespace pv {
 namespace view {
 
+const int SelectableItem::HighlightRadius = 6;
+
 SelectableItem::SelectableItem() :
-       _selected(false)
+       _context_parent(NULL),
+       _selected(false),
+       _drag_point(INT_MIN, INT_MIN)
 {
 }
 
@@ -38,5 +48,42 @@ void SelectableItem::select(bool select)
        _selected = select;
 }
 
+bool SelectableItem::dragging() const
+{
+       return _drag_point.x() != INT_MIN && _drag_point.y() != INT_MIN;
+}
+
+QPoint SelectableItem::drag_point() const
+{
+       return _drag_point;
+}
+
+void SelectableItem::drag()
+{
+       _drag_point = point();
+}
+
+void SelectableItem::drag_release()
+{
+       _drag_point = QPoint(INT_MIN, INT_MIN);
+}
+
+QMenu* SelectableItem::create_context_menu(QWidget *parent)
+{
+       _context_parent = parent;
+       return new QMenu(parent);
+}
+
+void SelectableItem::delete_pressed()
+{
+}
+
+QPen SelectableItem::highlight_pen()
+{
+       return QPen(QApplication::palette().brush(
+               QPalette::Highlight), HighlightRadius,
+               Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin);
+}
+
 } // namespace view
 } // namespace pv