X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fviewwidget.hpp;h=ef3cfa2fc303d9692d84e596d486191888cda143;hb=0bb3dd25421a8638afb881d46799a13378d3f00b;hp=e4fb73c8255debedb73963acddc0984e635a0433;hpb=1573bf16ba50d1c023ad3a9ce596f0ab6eaeacff;p=pulseview.git diff --git a/pv/views/trace/viewwidget.hpp b/pv/views/trace/viewwidget.hpp index e4fb73c8..ef3cfa2f 100644 --- a/pv/views/trace/viewwidget.hpp +++ b/pv/views/trace/viewwidget.hpp @@ -17,13 +17,16 @@ * along with this program; if not, see . */ -#ifndef PULSEVIEW_PV_VIEWWIDGET_HPP -#define PULSEVIEW_PV_VIEWWIDGET_HPP +#ifndef PULSEVIEW_PV_VIEWS_TRACE_VIEWWIDGET_HPP +#define PULSEVIEW_PV_VIEWS_TRACE_VIEWWIDGET_HPP #include +#include #include +#include + using std::shared_ptr; using std::vector; @@ -49,7 +52,7 @@ protected: * if no view item is being hovered over. * @remarks the default implementation does nothing. */ - virtual void item_hover(const shared_ptr &item); + virtual void item_hover(const shared_ptr &item, QPoint pos); /** * Indicates the event an a view item has been clicked. @@ -130,6 +133,9 @@ protected: void mouseReleaseEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); + void keyPressEvent(QKeyEvent *event); + void keyReleaseEvent(QKeyEvent *event); + void leaveEvent(QEvent *event); public Q_SLOTS: @@ -142,7 +148,12 @@ protected: pv::views::trace::View &view_; QPoint mouse_point_; QPoint mouse_down_point_; + pv::util::Timestamp mouse_down_offset_; shared_ptr mouse_down_item_; + + /// Keyboard modifiers that were active when mouse was last moved or clicked + Qt::KeyboardModifiers mouse_modifiers_; + bool item_dragging_; }; @@ -150,4 +161,4 @@ protected: } // namespace views } // namespace pv -#endif // PULSEVIEW_PV_VIEWWIDGET_HPP +#endif // PULSEVIEW_PV_VIEWS_TRACE_VIEWWIDGET_HPP