]> sigrok.org Git - pulseview.git/blobdiff - pv/view/view.hpp
View: Store CursorPair in a shared_ptr
[pulseview.git] / pv / view / view.hpp
index e763da7e398a9b563b8fc5927088ad3ed391a2aa..026c7683ffaef224c501ed94ad6cdbe586452742 100644 (file)
@@ -63,6 +63,8 @@ private:
 
        static const int MaxScrollValue;
 
 
        static const int MaxScrollValue;
 
+       static const int ScaleUnits[3];
+
 public:
        static const QColor CursorAreaColour;
 
 public:
        static const QColor CursorAreaColour;
 
@@ -88,6 +90,11 @@ public:
 
        const Viewport* viewport() const;
 
 
        const Viewport* viewport() const;
 
+       /**
+        * Gets a list of time markers.
+        */
+       std::vector< std::shared_ptr<TimeItem> > time_items() const;
+
        /**
         * Returns the view time scale in seconds per pixel.
         */
        /**
         * Returns the view time scale in seconds per pixel.
         */
@@ -100,6 +107,16 @@ public:
        double offset() const;
        int owner_visual_v_offset() const;
 
        double offset() const;
        int owner_visual_v_offset() const;
 
+       /**
+        * Returns the SI prefix to apply to the graticule time markings.
+        */
+       unsigned int tick_prefix() const;
+
+       /**
+        * Returns period of the graticule time markings.
+        */
+       double tick_period() const;
+
        /**
         * Returns the number of nested parents that this row item owner has.
         */
        /**
         * Returns the number of nested parents that this row item owner has.
         */
@@ -142,12 +159,7 @@ public:
        /**
         * Returns a reference to the pair of cursors.
         */
        /**
         * Returns a reference to the pair of cursors.
         */
-       CursorPair& cursors();
-
-       /**
-        * Returns a reference to the pair of cursors.
-        */
-       const CursorPair& cursors() const;
+       std::shared_ptr<CursorPair> cursors() const;
 
        const QPoint& hover_point() const;
 
 
        const QPoint& hover_point() const;
 
@@ -175,6 +187,12 @@ private:
         */
        void set_zoom(double scale, int offset);
 
         */
        void set_zoom(double scale, int offset);
 
+       /**
+        * Find a tick spacing and number formatting that does not cause
+        * the values to collide.
+        */
+       void calculate_tick_spacing();
+
        void update_scroll();
 
        void update_layout();
        void update_scroll();
 
        void update_layout();
@@ -252,8 +270,11 @@ private:
        int v_offset_;
        bool updating_scroll_;
 
        int v_offset_;
        bool updating_scroll_;
 
+       double tick_period_;
+       unsigned int tick_prefix_;
+
        bool show_cursors_;
        bool show_cursors_;
-       CursorPair cursors_;
+       std::shared_ptr<CursorPair> cursors_;
 
        QPoint hover_point_;
 
 
        QPoint hover_point_;