X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fview%2Fview.h;h=06616376c96045447dcd81af766bf236f1d1e0a0;hb=dd048a7ec035447c051c7937ce04aca5be065b4e;hp=bc99bdd775ef88c26fc235fef299d5a5eebe6a7a;hpb=ca46b5342f79e4786b973c83ed6a4cde5a51908d;p=pulseview.git diff --git a/pv/view/view.h b/pv/view/view.h index bc99bdd7..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: @@ -88,6 +88,8 @@ public: void zoom_fit(); + void zoom_one_to_one(); + /** * Sets the scale and offset. * @param scale The new view scale in seconds per pixel. @@ -99,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. */ @@ -141,9 +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); @@ -167,6 +184,8 @@ private slots: void on_signals_moved(); + void on_geometry_updated(); + private: SigSession &_session; @@ -174,8 +193,6 @@ private: Ruler *_ruler; Header *_header; - uint64_t _data_length; - /// The view time scale in seconds per pixel. double _scale;