#ifndef PULSEVIEW_PV_VIEW_HEADERITEM_H
#define PULSEVIEW_PV_VIEW_HEADERITEM_H
+#include <memory>
+
#include "selectableitem.h"
namespace pv {
namespace view {
-class View;
+class RowItemOwner;
-class RowItem : public SelectableItem
+class RowItem : public SelectableItem,
+ public std::enable_shared_from_this<pv::view::RowItem>
{
+ Q_OBJECT
+
public:
/**
* Constructor.
/**
* Gets the vertical layout offset of this signal.
*/
- int get_v_offset() const;
+ int v_offset() const;
/**
* Sets the vertical layout offset of this signal.
void set_v_offset(int v_offset);
/**
- * Sets the view that owns this trace in the view trace hierachy.
+ * Gets the owner this trace in the view trace hierachy.
+ */
+ pv::view::RowItemOwner* owner() const;
+
+ /**
+ * Sets the owner this trace in the view trace hierachy.
* @param The new owner of the trace.
*/
- void set_view(pv::view::View *view);
+ void set_owner(pv::view::RowItemOwner *owner);
/**
* Gets the y-offset of the axis.
*/
int get_y() const;
+ /**
+ * Gets the drag point of the row item.
+ */
+ QPoint point() const;
+
/**
* Paints the background layer of the trace with a QPainter
* @param p the QPainter to paint into.
* area.
* @return Returns the rectangle of the signal label.
*/
- virtual QRectF label_rect(int right) = 0;
+ virtual QRectF label_rect(int right) const = 0;
public:
virtual void hover_point_changed();
+Q_SIGNALS:
+ void appearance_changed();
+
protected:
- pv::view::View *_view;
+ pv::view::RowItemOwner *_owner;
int _v_offset;
};