X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fview%2Ftimemarker.h;h=63de74c41f150737c4465359feec37775832d4e0;hb=f0c0b38f812bfbb2bb1978d40e2ce93f1da3f89d;hp=616221b23ba139afd1992b9ac7d6acc9332db1d8;hpb=cd6c8ee24fe845fc7d4fcbf8672bb8cdd3afea1a;p=pulseview.git diff --git a/pv/view/timemarker.h b/pv/view/timemarker.h index 616221b2..63de74c4 100644 --- a/pv/view/timemarker.h +++ b/pv/view/timemarker.h @@ -22,6 +22,12 @@ #define PULSEVIEW_PV_VIEW_MARKER_H #include +#include +#include +#include +#include + +#include "selectableitem.h" class QPainter; class QRect; @@ -31,8 +37,10 @@ namespace view { class View; -class TimeMarker +class TimeMarker : public SelectableItem { + Q_OBJECT + protected: /** * Constructor. @@ -40,7 +48,7 @@ protected: * @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); + TimeMarker(View &view, const QColor &colour, double time); public: /** @@ -53,6 +61,13 @@ public: */ void set_time(double time); + float get_x() const; + + /** + * Gets the drag point of the row item. + */ + QPoint point() const; + /** * Paints the marker to the viewport. * @param p The painter to draw with. @@ -60,21 +75,44 @@ 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; + + pv::widgets::Popup* create_popup(QWidget *parent); + +private Q_SLOTS: + void on_value_changed(double value); + +Q_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 } // namespace pv -#endif // PULSEVIEW_PV_VIEW_MARKER_H \ No newline at end of file +#endif // PULSEVIEW_PV_VIEW_MARKER_H