X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fview%2Ftimemarker.h;h=8d8ae162e909c3738e628477fbdc327b77f59bc0;hb=a55c544b0fefead0786633d6d7c2356002b192ae;hp=c02dab159dbecb93c03a9f5a2b921012e6d82c40;hpb=3efda736308edc11468a4b59bdb28d5793902529;p=pulseview.git diff --git a/pv/view/timemarker.h b/pv/view/timemarker.h index c02dab15..8d8ae162 100644 --- a/pv/view/timemarker.h +++ b/pv/view/timemarker.h @@ -23,6 +23,9 @@ #include #include +#include + +#include "selectableitem.h" class QPainter; class QRect; @@ -32,7 +35,7 @@ namespace view { class View; -class TimeMarker : public QObject +class TimeMarker : public SelectableItem { Q_OBJECT @@ -45,11 +48,6 @@ protected: */ TimeMarker(const View &view, const QColor &colour, double time); - /** - * Copy constructor - */ - TimeMarker(const TimeMarker &s); - public: /** * Gets the time of the marker. @@ -68,21 +66,41 @@ 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, + unsigned int prefix) = 0; + + /** + * Returns a list of context menu items to show in the context + * bar. */ - virtual void paint_label(QPainter &p, const QRect &rect) = 0; + const std::list get_context_bar_actions(); + +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