#define PULSEVIEW_PV_VIEW_MARKER_H
#include <QColor>
+#include <QObject>
+#include <QRectF>
class QPainter;
class QRect;
class View;
-class TimeMarker
+class TimeMarker : public QObject
{
+ Q_OBJECT
+
protected:
/**
* Constructor.
*/
TimeMarker(const View &view, const QColor &colour, double time);
+ /**
+ * Copy constructor
+ */
+ TimeMarker(const TimeMarker &s);
+
public:
/**
* Gets the time of the marker.
*/
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