]> sigrok.org Git - pulseview.git/blobdiff - pv/view/header.hpp
Header: Make get_mouse_over_item return shared_ptr<ViewItem>
[pulseview.git] / pv / view / header.hpp
index 662e19f2ed5027d773d55a1badc9ff7a81a0c48e..e249264330a074c65cbe51559d9fbde54844c412 100644 (file)
@@ -32,6 +32,7 @@ namespace view {
 
 class RowItem;
 class View;
+class ViewItem;
 
 class Header : public MarginWidget
 {
@@ -45,6 +46,13 @@ public:
 
        QSize sizeHint() const;
 
+       /**
+        * The extended area that the header widget would like to be sized to.
+        * @remarks This area is the area specified by sizeHint, extended by
+        * the area to overlap the viewport.
+        */
+       QSize extended_size_hint() const;
+
        /**
         * The horizontal offset, relative to the left edge of the widget,
         * where the arrows of the trace labels end.
@@ -52,13 +60,17 @@ public:
        static const int BaselineOffset;
 
 private:
-       std::shared_ptr<pv::view::RowItem> get_mouse_over_row_item(
+       /**
+        * Gets the first view item which has a label 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);
 
        void clear_selection();
 
-       void show_popup(const std::shared_ptr<RowItem> &item);
-
 private:
        void paintEvent(QPaintEvent *event);
 
@@ -71,8 +83,6 @@ private:
 
        void mouseMoveEvent(QMouseEvent *event);
 
-       void leaveEvent(QEvent *event);
-
        void contextMenuEvent(QContextMenuEvent *event);
 
        void keyPressEvent(QKeyEvent *e);
@@ -86,12 +96,6 @@ private Q_SLOTS:
 
 Q_SIGNALS:
        void signals_moved();
-
-private:
-       QPoint mouse_point_;
-       QPoint mouse_down_point_;
-       std::shared_ptr<RowItem> mouse_down_item_;
-       bool dragging_;
 };
 
 } // namespace view