X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fview%2Fheader.hpp;h=f12d23ca5852f40a1707301e38b2d4de22910fec;hp=3c94f791c730d683b374cc4e16aafacbfa3ea1f2;hb=2f7982367e8382e05c862de7afc71075ded5f606;hpb=19552bb8dff1708939544beecb448bcc91f46644 diff --git a/pv/view/header.hpp b/pv/view/header.hpp index 3c94f791..f12d23ca 100644 --- a/pv/view/header.hpp +++ b/pv/view/header.hpp @@ -32,6 +32,7 @@ namespace view { class RowItem; class View; +class ViewItem; class Header : public MarginWidget { @@ -59,23 +60,36 @@ public: static const int BaselineOffset; private: - std::shared_ptr get_mouse_over_item( + /** + * Gets the row items. + */ + std::vector< std::shared_ptr > items(); + + /** + * 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 get_mouse_over_item( const QPoint &pt); - void clear_selection(); + /** + * Returns true if the selection of row items allows dragging. + * @return Returns true if the drag is acceptable. + */ + bool accept_drag() const; + + /** + * Drag the dragging items by the delta offset. + * @param delta the drag offset in pixels. + */ + void drag_items(const QPoint &delta); private: void paintEvent(QPaintEvent *event); private: - void mouseLeftPressEvent(QMouseEvent *event); - void mousePressEvent(QMouseEvent * event); - - void mouseLeftReleaseEvent(QMouseEvent *event); - void mouseReleaseEvent(QMouseEvent *event); - - void mouseMoveEvent(QMouseEvent *event); - void contextMenuEvent(QContextMenuEvent *event); void keyPressEvent(QKeyEvent *e);