#define PULSEVIEW_PV_VIEW_MARKER_H
#include <QColor>
+#include <QDoubleSpinBox>
#include <QObject>
#include <QRectF>
+#include <QWidgetAction>
+
+#include "selectableitem.h"
class QPainter;
class QRect;
class View;
-class TimeMarker : public QObject
+class TimeMarker : public SelectableItem
{
Q_OBJECT
* @param colour A reference to the colour of this cursor.
* @param time The time to set the flag to.
*/
- TimeMarker(const View &view, const QColor &colour, double time);
-
- /**
- * Copy constructor
- */
- TimeMarker(const TimeMarker &s);
+ TimeMarker(View &view, const QColor &colour, double time);
public:
/**
*/
void set_time(double time);
+ float get_x() const;
+
/**
* Paints the marker to the viewport.
* @param p The painter to draw with.
* 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;
+
+ pv::widgets::Popup* create_popup(QWidget *parent);
+
+private slots:
+ void on_value_changed(double value);
signals:
void time_changed();
protected:
- const View &_view;
+ View &_view;
const QColor &_colour;
double _time;
QSizeF _text_size;
+
+ QWidgetAction *_value_action;
+ QDoubleSpinBox *_value_widget;
+ bool _updating_value_widget;
};
} // namespace view