Store annotations as objects emplaced in the vector
[pulseview.git] / pv / view / decode / annotation.h
index 4e24121c50622923e5b0284cc8bd475a777d9261..94b7dc90c9fabfdb330c9d14f5105018f56612a4 100644 (file)
@@ -33,12 +33,34 @@ namespace decode {
 
 class Annotation
 {
+private:
+       static const double EndCapWidth;
+       static const int DrawPadding;
+
+       static const QColor Colours[7];
+
 public:
        Annotation(const srd_proto_data *const pdata);
 
+       uint64_t start_sample() const;
+       uint64_t end_sample() const;
+
+       void paint(QPainter &p, QColor text_colour, int text_height, int left,
+               int right, double samples_per_pixel, double pixels_offset,
+               int y) const;
+
+private:
+       void draw_instant(QPainter &p, QColor fill, QColor outline,
+               QColor text_color, int h, double x, int y) const;
+
+       void draw_range(QPainter &p, QColor fill, QColor outline,
+               QColor text_color, int h, double start,
+               double end, int y) const;
+
 private:
        uint64_t _start_sample;
        uint64_t _end_sample;
+       int _format;
        std::vector<QString> _annotations; 
 };