#include "timemarker.h"
+#include <boost/shared_ptr.hpp>
+
+#include <QSizeF>
+
+class QPainter;
+
namespace pv {
namespace view {
class Cursor : public TimeMarker
{
-private:
+ Q_OBJECT
+
+public:
static const QColor LineColour;
static const QColor FillColour;
static const QColor HighlightColour;
+ static const QColor TextColour;
- static const int Size;
static const int Offset;
+ static const int ArrowSize;
+
public:
/**
* Constructor.
- * @param colour A reference to the colour of this cursor.
+ * @param view A reference to the view that owns this cursor pair.
* @param time The time to set the flag to.
*/
- Cursor(const View &view, double time);
+ Cursor(View &view, double time);
public:
+ /**
+ * Gets the marker label rectangle.
+ * @param rect The rectangle of the ruler client area.
+ * @return Returns the label rectangle.
+ */
+ QRectF get_label_rect(const QRect &rect) const;
+
/**
* Paints the cursor's label to the ruler.
* @param p The painter to draw with.
* @param rect The rectangle of the ruler client area.
+ * @param prefix The index of the SI prefix to use.
*/
- void paint_label(QPainter &p, const QRect &rect);
+ void paint_label(QPainter &p, const QRect &rect,
+ unsigned int prefix);
+
+private:
+ void compute_text_size(QPainter &p, unsigned int prefix);
+
+ boost::shared_ptr<Cursor> get_other_cursor() const;
+
+private:
+ QSizeF _text_size;
};
} // namespace view
} // namespace pv
-#endif // PULSEVIEW_PV_VIEW_CURSOR_H
\ No newline at end of file
+#endif // PULSEVIEW_PV_VIEW_CURSOR_H