#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:
/**
* 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;
+
+ /**
+ * Returns a list of context menu items to show in the context
+ * bar.
+ */
+ const std::list<QAction*> get_context_bar_actions();
+
+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