ViewWidget: Moved in mouse handlers
[pulseview.git] / pv / view / viewport.hpp
index 1171a70730c8ed9490e5de549c19b46b250de8a0..be3e7d32b719a7d80ca87df69216fbde735b963f 100644 (file)
 #define PULSEVIEW_PV_VIEW_VIEWPORT_H
 
 #include <QTimer>
-#include <QWidget>
 #include <QTouchEvent>
 
+#include "viewwidget.hpp"
+
 class QPainter;
 class QPaintEvent;
-class SigSession;
+class Session;
 
 namespace pv {
 namespace view {
 
 class View;
 
-class Viewport : public QWidget
+class Viewport : public ViewWidget
 {
        Q_OBJECT
 
 public:
        explicit Viewport(View &parent);
 
-protected:
+private:
+       /**
+        * Gets the first view item which has a hit-box that contains @c pt .
+        * @param pt the point to search with.
+        * @return the view item that has been found, or and empty
+        *   @c shared_ptr if no item was found.
+        */
+       std::shared_ptr<pv::view::ViewItem> get_mouse_over_item(
+               const QPoint &pt);
+
+       /**
+        * Gets the items in the view widget.
+        */
+       std::vector< std::shared_ptr<pv::view::ViewItem> > items();
+
        void paintEvent(QPaintEvent *event);
 
-private:
        bool event(QEvent *event);
        void mousePressEvent(QMouseEvent *event);
        void mouseReleaseEvent(QMouseEvent *event);
@@ -53,12 +67,7 @@ private:
        void wheelEvent(QWheelEvent *event);
        bool touchEvent(QTouchEvent *e);
 
-private Q_SLOTS:
-       void on_signals_moved();
-
 private:
-       View &view_;
-
        QPoint mouse_down_point_;
        double mouse_down_offset_;
        bool mouse_down_valid_;