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