X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fview%2Fviewport.hpp;h=43905337fefaad1c4b78cc6a71ef432212e15c11;hb=c9743553584975b338890c16ef22943d7beaacdd;hp=1171a70730c8ed9490e5de549c19b46b250de8a0;hpb=2acdb232d6bb452cfdfaea3ef5218fb4da592329;p=pulseview.git diff --git a/pv/view/viewport.hpp b/pv/view/viewport.hpp index 1171a70..4390533 100644 --- a/pv/view/viewport.hpp +++ b/pv/view/viewport.hpp @@ -22,43 +22,56 @@ #define PULSEVIEW_PV_VIEW_VIEWPORT_H #include -#include #include +#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: - void paintEvent(QPaintEvent *event); +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 get_mouse_over_item( + const QPoint &pt); + + /** + * Gets the items in the view widget. + */ + std::vector< std::shared_ptr > items(); + + /** + * Handles touch begin update and end events. + * @param e the event that triggered this handler. + */ + bool touch_event(QTouchEvent *e); private: - bool event(QEvent *event); + void paintEvent(QPaintEvent *event); + void mousePressEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); void mouseDoubleClickEvent(QMouseEvent * event); 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_;