Merge branch 'master' into cairocanvas
[ardour.git] / libs / canvas / canvas / line.h
1 #ifndef __CANVAS_LINE_H__
2 #define __CANVAS_LINE_H__
3
4 #include "canvas/item.h"
5 #include "canvas/outline.h"
6 #include "canvas/poly_line.h"
7
8 namespace ArdourCanvas {
9
10 class Line : virtual public Item, public Outline
11 {
12 public:
13         Line (Group *);
14
15         void render (Rect const & area, Cairo::RefPtr<Cairo::Context>) const;
16         void compute_bounding_box () const;
17         XMLNode* get_state () const;
18         void set_state (XMLNode const *);
19
20         void set (Duple, Duple);
21         void set_x0 (Coord);
22         void set_y0 (Coord);
23         void set_x1 (Coord);
24         void set_y1 (Coord);
25         Coord x0 () const {
26                 return _points[0].x;
27         }
28         Coord y0 () const {
29                 return _points[0].y;
30         }
31         Coord x1 () const {
32                 return _points[1].x;
33         }
34         Coord y1 () const {
35                 return _points[1].y;
36         }
37
38 private:
39         Duple _points[2];
40 };
41         
42 }
43
44 #endif