#ifndef PULSEVIEW_PV_VIEW_HEADERITEM_H
#define PULSEVIEW_PV_VIEW_HEADERITEM_H
+#include <memory>
+
#include "selectableitem.h"
namespace pv {
class RowItemOwner;
-class RowItem : public SelectableItem
+class RowItem : public SelectableItem,
+ public std::enable_shared_from_this<pv::view::RowItem>
{
+ Q_OBJECT
+
public:
/**
* Constructor.
*/
void set_v_offset(int v_offset);
+ /**
+ * 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.
*/
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::RowItemOwner *_owner;