#ifndef __CANVAS_ARROW_H__
#define __CANVAS_ARROW_H__
-#include "canvas/group.h"
+#include "canvas/visibility.h"
+#include "canvas/container.h"
namespace ArdourCanvas {
+class Canvas;
class Line;
class Polygon;
* to draw lines at any angle.
*/
-class Arrow : public Group
+class LIBCANVAS_API Arrow : public Container
{
public:
- Arrow (Group *);
+ Arrow (Canvas*);
+ Arrow (Item*);
void set_show_head (int, bool);
void set_head_outward (int, bool);
void set_y0 (Coord);
void set_y1 (Coord);
+ bool covers (Duple const &) const;
+
private:
void setup_polygon (int);
+ void setup ();
/** Representation of a single arrow head */
struct Head {
Polygon* polygon; ///< the polygon which represents its shape
- bool show; ///< true if this head should be visible
bool outward; ///< true if this head points out from the line
Distance height; ///< the height of the head
Distance width; ///< the maximum width of the head