X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fview%2Fview.h;h=50fbcf1ce11e64ad47cf8a3d4137759f19a55408;hb=68b21a71797051fb48ed272bc2a6b4893bdbf517;hp=6e097a4d68c11b4ba3e31df41e16f5a9d98a4dfc;hpb=2c25d912f97ca7bedd9c03f4827fe8d8a189e8bc;p=pulseview.git diff --git a/pv/view/view.h b/pv/view/view.h index 6e097a4..50fbcf1 100644 --- a/pv/view/view.h +++ b/pv/view/view.h @@ -33,6 +33,7 @@ #include #include "cursorpair.h" +#include "rowitemowner.h" namespace pv { @@ -43,10 +44,9 @@ namespace view { class CursorHeader; class Header; class Ruler; -class Trace; class Viewport; -class View : public QAbstractScrollArea { +class View : public QAbstractScrollArea, public RowItemOwner { Q_OBJECT private: @@ -70,6 +70,16 @@ public: SigSession& session(); const SigSession& session() const; + /** + * Returns the view of the owner. + */ + virtual pv::view::View* view(); + + /** + * Returns the view of the owner. + */ + virtual const pv::view::View* view() const; + Viewport* viewport(); const Viewport* viewport() const; @@ -84,7 +94,7 @@ public: * seconds. */ double offset() const; - int v_offset() const; + int owner_v_offset() const; void zoom(double steps); void zoom(double steps, int offset); @@ -100,8 +110,6 @@ public: */ void set_scale_offset(double scale, double offset); - std::vector< std::shared_ptr > get_traces() const; - std::list > selected_items() const; std::set< std::shared_ptr > @@ -164,6 +172,23 @@ private: void update_layout(); + /** + * Satisifies RowItem functionality. + * @param p the QPainter to paint into. + * @param right the x-coordinate of the right edge of the header + * area. + * @param hover true if the label is being hovered over by the mouse. + */ + void paint_label(QPainter &p, int right, bool hover); + + /** + * Computes the outline rectangle of a label. + * @param right the x-coordinate of the right edge of the header + * area. + * @return Returns the rectangle of the signal label. + */ + QRectF label_rect(int right); + private: bool eventFilter(QObject *object, QEvent *event);