X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fview%2Fview.h;h=06616376c96045447dcd81af766bf236f1d1e0a0;hp=db03ce9b43a81b1a7b6a5eda32e0986e15cb1c86;hb=32d83ce1a26322a433785746ea7465f9bdf830b6;hpb=d1e7d82c6327c15f38d66602e65c4d3abe114df7 diff --git a/pv/view/view.h b/pv/view/view.h index db03ce9b..06616376 100644 --- a/pv/view/view.h +++ b/pv/view/view.h @@ -23,6 +23,7 @@ #include +#include #include #include @@ -31,6 +32,8 @@ #include #include +#include + #include "cursorpair.h" namespace pv { @@ -51,9 +54,6 @@ private: static const double MaxScale; static const double MinScale; - static const int LabelMarginWidth; - static const int RulerHeight; - static const int MaxScrollValue; public: @@ -101,6 +101,11 @@ public: std::list > selected_items() const; + std::set< boost::shared_ptr > + get_visible_data() const; + + std::pair get_time_extents() const; + /** * Returns true if cursors are displayed. false otherwise. */ @@ -143,11 +148,19 @@ signals: private: void get_scroll_layout(double &length, double &offset) const; - + + /** + * Simultaneously sets the zoom and offset. + * @param scale The scale to set the view to in seconds per pixel. This + * value is clamped between MinScale and MaxScale. + * @param offset The offset of the left edge of the view in seconds. + */ void set_zoom(double scale, int offset); void update_scroll(); + void update_layout(); + static bool compare_trace_v_offsets( const boost::shared_ptr &a, const boost::shared_ptr &b); @@ -171,6 +184,8 @@ private slots: void on_signals_moved(); + void on_geometry_updated(); + private: SigSession &_session; @@ -178,8 +193,6 @@ private: Ruler *_ruler; Header *_header; - uint64_t _data_length; - /// The view time scale in seconds per pixel. double _scale;