X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fview%2Fheader.h;h=5474f10eb48bcac2461f8d58546605e86d409173;hb=32d83ce1a26322a433785746ea7465f9bdf830b6;hp=5693a8a0d4f1bfc0d5a16e294d4f6d745e3c1a7b;hpb=a29bb7fb6aa3665c21da1e06a3d3c4ca80f4437f;p=pulseview.git diff --git a/pv/view/header.h b/pv/view/header.h index 5693a8a0..5474f10e 100644 --- a/pv/view/header.h +++ b/pv/view/header.h @@ -18,38 +18,77 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef PV_VIEW_HEADER_H -#define PV_VIEW_HEADER_H +#ifndef PULSEVIEW_PV_VIEW_HEADER_H +#define PULSEVIEW_PV_VIEW_HEADER_H -#include +#include +#include + +#include +#include + +#include "marginwidget.h" namespace pv { namespace view { +class Trace; class View; -class Header : public QWidget +class Header : public MarginWidget { Q_OBJECT +private: + static const int Padding; + public: Header(View &parent); + QSize sizeHint() const; + +private: + boost::shared_ptr get_mouse_over_trace( + const QPoint &pt); + + void clear_selection(); + private: void paintEvent(QPaintEvent *event); private: + void mousePressEvent(QMouseEvent * event); + + void mouseReleaseEvent(QMouseEvent *event); + void mouseMoveEvent(QMouseEvent *event); void leaveEvent(QEvent *event); -private: - View &_view; + void contextMenuEvent(QContextMenuEvent *event); + + void keyPressEvent(QKeyEvent *e); + +private slots: + void on_signals_changed(); + + void on_signals_moved(); + void on_trace_text_changed(); + +signals: + void signals_moved(); + +private: QPoint _mouse_point; + QPoint _mouse_down_point; + bool _dragging; + + std::list, int> > + _drag_traces; }; } // namespace view } // namespace pv -#endif // PV_VIEW_HEADER_H +#endif // PULSEVIEW_PV_VIEW_HEADER_H