]> sigrok.org Git - pulseview.git/blobdiff - pv/views/trace/viewwidget.hpp
Implement expansion marker animation and its infrastructure
[pulseview.git] / pv / views / trace / viewwidget.hpp
index e4fb73c8255debedb73963acddc0984e635a0433..427a8994e60cbeadf91995ce5fc6c3bfda76137e 100644 (file)
 
 #include <memory>
 
+#include <QPoint>
 #include <QWidget>
 
+#include <pv/util.hpp>
+
 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<ViewItem> &item);
+       virtual void item_hover(const shared_ptr<ViewItem> &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<ViewItem> mouse_down_item_;
+
+       /// Keyboard modifiers that were active when mouse was last moved or clicked
+       Qt::KeyboardModifiers mouse_modifiers_;
+
        bool item_dragging_;
 };