X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fview%2Frowitem.h;h=d068848a54be6faf30488187516354f7d650fdc0;hb=3e769a374963f37f7d52b65ef6c56bcdf1ef11fe;hp=90036389dd39dea17d04d860d2422a1bc474bcc3;hpb=0067d80499d36944277e6fed2d7ad5394c85c03f;p=pulseview.git diff --git a/pv/view/rowitem.h b/pv/view/rowitem.h index 9003638..d068848 100644 --- a/pv/view/rowitem.h +++ b/pv/view/rowitem.h @@ -21,6 +21,8 @@ #ifndef PULSEVIEW_PV_VIEW_HEADERITEM_H #define PULSEVIEW_PV_VIEW_HEADERITEM_H +#include + #include "selectableitem.h" namespace pv { @@ -28,8 +30,11 @@ namespace view { class RowItemOwner; -class RowItem : public SelectableItem +class RowItem : public SelectableItem, + public std::enable_shared_from_this { + Q_OBJECT + public: /** * Constructor. @@ -44,12 +49,27 @@ public: /** * Gets the vertical layout offset of this signal. */ - int v_offset() const; + int layout_v_offset() const; /** * Sets the vertical layout offset of this signal. */ - void set_v_offset(int v_offset); + void set_layout_v_offset(int v_offset); + + /** + * Gets the vertical visual offset of this signal. + */ + int visual_v_offset() const; + + /** + * Sets the vertical visual offset of this signal. + */ + void set_visual_v_offset(int v_offset); + + /** + * Sets the visual and layout offset of this signal. + */ + void force_to_v_offset(int v_offset); /** * Gets the owner this trace in the view trace hierachy. @@ -63,9 +83,20 @@ public: void set_owner(pv::view::RowItemOwner *owner); /** - * Gets the y-offset of the axis. + * Gets the visual y-offset of the axis. + */ + int get_visual_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. */ - int get_y() const; + virtual std::pair v_extents() const = 0; /** * Paints the background layer of the trace with a QPainter @@ -114,7 +145,8 @@ public: protected: pv::view::RowItemOwner *_owner; - int _v_offset; + int _layout_v_offset; + int _visual_v_offset; }; } // namespace view