X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fview%2Frowitem.h;h=db6e580d0a221c44e848a6f527c45036cb9e6b2e;hb=8dbbc7f0b9ea59d0f0d62225772f8a56eee125f5;hp=2133db878188ba906f17619d2d8a1c06fb250f06;hpb=dc747705ac06c9e9ab582b6b8b7cfc31003128e0;p=pulseview.git diff --git a/pv/view/rowitem.h b/pv/view/rowitem.h index 2133db8..db6e580 100644 --- a/pv/view/rowitem.h +++ b/pv/view/rowitem.h @@ -23,6 +23,8 @@ #include +#include + #include "selectableitem.h" namespace pv { @@ -34,6 +36,9 @@ class RowItem : public SelectableItem, public std::enable_shared_from_this { Q_OBJECT + Q_PROPERTY(int visual_v_offset + READ visual_v_offset + WRITE set_visual_v_offset) public: /** @@ -49,12 +54,33 @@ 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); + + /** + * Begins an animation that will animate the visual offset toward + * the layout offset. + */ + void animate_to_layout_v_offset(); /** * Gets the owner this trace in the view trace hierachy. @@ -68,15 +94,21 @@ 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_y() const; + 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. + */ + virtual std::pair v_extents() const = 0; + /** * Paints the background layer of the trace with a QPainter * @param p the QPainter to paint into. @@ -121,13 +153,14 @@ public: public: virtual void hover_point_changed(); -Q_SIGNALS: - void appearance_changed(); - protected: - pv::view::RowItemOwner *_owner; + pv::view::RowItemOwner *owner_; + + int layout_v_offset_; + int visual_v_offset_; - int _v_offset; +private: + QPropertyAnimation v_offset_animation_; }; } // namespace view