X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fview%2Frowitem.h;h=1aafca4be3fbfee81b663532e9e6a887601d6f12;hb=a5d93c27b5bd6b95000e29c6cddac56ab254b289;hp=edf4573eb376104c0c3ca428fc14690cdf136bd6;hpb=1ef49ddd04f44a4369403fbab19ed235483e2975;p=pulseview.git diff --git a/pv/view/rowitem.h b/pv/view/rowitem.h index edf4573..1aafca4 100644 --- a/pv/view/rowitem.h +++ b/pv/view/rowitem.h @@ -21,15 +21,20 @@ #ifndef PULSEVIEW_PV_VIEW_HEADERITEM_H #define PULSEVIEW_PV_VIEW_HEADERITEM_H +#include + #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 { + Q_OBJECT + public: /** * Constructor. @@ -52,16 +57,32 @@ public: 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; + + /** + * Computes the vertical extents of the contents of this row item. + * @return A pair containing the minimum and maximum y-values. + */ + virtual std::pair v_extents() const = 0; + /** * Paints the background layer of the trace with a QPainter * @param p the QPainter to paint into. @@ -101,13 +122,16 @@ public: * 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; };