#define PULSEVIEW_PV_VIEW_HEADER_H
#include <boost/shared_ptr.hpp>
+#include <boost/weak_ptr.hpp>
-#include <QWidget>
+#include <list>
+#include <utility>
-namespace pv {
-
-class Signal;
+#include "marginwidget.h"
+namespace pv {
namespace view {
+class Trace;
class View;
-class Header : public QWidget
+class Header : public MarginWidget
{
Q_OBJECT
public:
Header(View &parent);
+private:
+ boost::shared_ptr<pv::view::Trace> 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);
void contextMenuEvent(QContextMenuEvent *event);
private slots:
- void on_action_set_name_triggered();
+ void on_signals_changed();
-private:
- View &_view;
+ void on_signals_moved();
+signals:
+ void signals_moved();
+
+private:
QPoint _mouse_point;
+ QPoint _mouse_down_point;
+ bool _dragging;
- boost::shared_ptr<pv::Signal> _context_signal;
- QAction *_action_set_name;
+ std::list<std::pair<boost::weak_ptr<Trace>, int> >
+ _drag_traces;
};
} // namespace view