X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fcanvas%2Fcanvas%2Fline_set.h;h=ccce24aa8959ca0d3db8cea79a6273c80a8aaba1;hb=9a0a2a29b53a7d8b74d64039a3a594e54262ef29;hp=cd551438b1e4368dd72b614052e2b2486326db5d;hpb=75b933eadbe8f90a73a29bb207ff26eebcd4121a;p=ardour.git diff --git a/libs/canvas/canvas/line_set.h b/libs/canvas/canvas/line_set.h index cd551438b1..ccce24aa89 100644 --- a/libs/canvas/canvas/line_set.h +++ b/libs/canvas/canvas/line_set.h @@ -17,11 +17,17 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#ifndef __CANVAS_LINESET_H__ +#define __CANVAS_LINESET_H__ + +#include + +#include "canvas/visibility.h" #include "canvas/item.h" namespace ArdourCanvas { -class LineSet : public Item +class LIBCANVAS_API LineSet : public Item { public: enum Orientation { @@ -29,27 +35,34 @@ public: Horizontal }; - LineSet (Group *); + LineSet (Canvas*, Orientation o = Vertical); + LineSet (Item*, Orientation o = Vertical); void compute_bounding_box () const; void render (Rect const & area, Cairo::RefPtr) const; - void set_height (Distance); + bool covers (Duple const &) const; + + void set_extent (Distance); + Distance extent() const { return _extent; } - void add (Coord, Distance, Color); + void add (Coord, Distance, Gtkmm2ext::Color); void clear (); struct Line { - Line (Coord y_, Distance width_, Color color_) : y (y_), width (width_), color (color_) {} - - Coord y; + Line (Coord p, Distance width_, Gtkmm2ext::Color color_) : pos (p), width (width_), color (color_) {} + + Coord pos; Distance width; - Color color; + Gtkmm2ext::Color color; }; private: - std::list _lines; - Distance _height; + std::vector _lines; + Distance _extent; + Orientation _orientation; }; } + +#endif /* __CANVAS_LINESET_H__ */