]> sigrok.org Git - pulseview.git/blobdiff - pv/views/trace/timeitem.hpp
Session: Fix issue #67 by improving error handling
[pulseview.git] / pv / views / trace / timeitem.hpp
index a9b21c7258ec79ccd9f504ec6883632e1328b709..acac3273955f49c862932fbfe4ad3654e6e0ac07 100644 (file)
@@ -17,8 +17,8 @@
  * along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef PULSEVIEW_PV_VIEWS_TRACEVIEW_TIMEITEM_HPP
-#define PULSEVIEW_PV_VIEWS_TRACEVIEW_TIMEITEM_HPP
+#ifndef PULSEVIEW_PV_VIEWS_TRACE_TIMEITEM_HPP
+#define PULSEVIEW_PV_VIEWS_TRACE_TIMEITEM_HPP
 
 #include "viewitem.hpp"
 
@@ -33,7 +33,6 @@ class View;
  * nature, not making assumptions about the kind of item shown.
  */
 class TimeItem : public ViewItem
-
 {
        Q_OBJECT
 
@@ -44,20 +43,32 @@ protected:
         */
        TimeItem(View &view);
 
+       bool snapping_disabled_ = false;
+
 public:
        /**
         * Sets the time of the marker.
         */
        virtual void set_time(const pv::util::Timestamp& time) = 0;
 
+       /**
+        * Returns the time this time item is set to.
+        * @return 0 in case there is no valid time (e.g. for a cursor pair)
+        */
+       virtual const pv::util::Timestamp time() const = 0;
+
        virtual float get_x() const = 0;
 
+       virtual const pv::util::Timestamp delta(const pv::util::Timestamp& other) const;
+
        /**
         * Drags the item to a delta relative to the drag point.
         * @param delta the offset from the drag point.
         */
        void drag_by(const QPoint &delta);
 
+       bool is_snapping_disabled() const;
+
 protected:
        View &view_;
 };
@@ -66,4 +77,4 @@ protected:
 } // namespace views
 } // namespace pv
 
-#endif // PULSEVIEW_PV_VIEWS_TRACEVIEW_TIMEITEM_HPP
+#endif // PULSEVIEW_PV_VIEWS_TRACE_TIMEITEM_HPP