]> sigrok.org Git - pulseview.git/blobdiff - pv/view/timemarker.h
Improved painting of cursor values
[pulseview.git] / pv / view / timemarker.h
index 616221b23ba139afd1992b9ac7d6acc9332db1d8..3c9198899a7ec1b0ea7eeacf073eabfc873f636d 100644 (file)
@@ -22,6 +22,8 @@
 #define PULSEVIEW_PV_VIEW_MARKER_H
 
 #include <QColor>
+#include <QObject>
+#include <QRectF>
 
 class QPainter;
 class QRect;
@@ -31,8 +33,10 @@ namespace view {
 
 class View;
 
-class TimeMarker
+class TimeMarker : public QObject
 {
+       Q_OBJECT
+
 protected:
        /**
         * Constructor.
@@ -42,6 +46,11 @@ protected:
         */
        TimeMarker(const View &view, const QColor &colour, double time);
 
+       /**
+        * Copy constructor
+        */
+       TimeMarker(const TimeMarker &s);
+
 public:
        /**
         * Gets the time of the marker.
@@ -60,21 +69,35 @@ public:
         */
        virtual void paint(QPainter &p, const QRect &rect);
 
+       /**
+        * Gets the marker label rectangle.
+        * @param rect The rectangle of the ruler client area.
+        * @return Returns the label rectangle.
+        */
+       virtual QRectF get_label_rect(const QRect &rect) const = 0;
+
        /**
         * Paints the marker's label to the ruler.
         * @param p The painter to draw with.
         * @param rect The rectangle of the ruler client area.
+        * @param prefix The SI prefix to paint time value with.
         */
-       virtual void paint_label(QPainter &p, const QRect &rect) = 0;
+       virtual void paint_label(QPainter &p, const QRect &rect,
+               unsigned int prefix) = 0;
+
+signals:
+       void time_changed();
 
 protected:
        const View &_view;
        const QColor &_colour;
 
        double _time;
+
+       QSizeF _text_size;
 };
 
 } // namespace view
 } // namespace pv
 
-#endif // PULSEVIEW_PV_VIEW_MARKER_H
\ No newline at end of file
+#endif // PULSEVIEW_PV_VIEW_MARKER_H