]> sigrok.org Git - pulseview.git/blobdiff - pv/view/cursor.h
Made TimeMarker::_view a non-const reference
[pulseview.git] / pv / view / cursor.h
index a982c05e4d2b76b10cb2c224b50002a8cc9ec138..290365e8ff3e28f9a5ee9b00f4237d8785b29130 100644 (file)
 
 #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