#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.
*/
virtual void paint_label(QPainter &p, const QRect &rect) = 0;
+signals:
+ void time_changed();
+
protected:
const View &_view;
const QColor &_colour;
double _time;
+
+ QSizeF _text_size;
};
} // namespace view