Fix ExportFormatSpecification copy-c'tor
[ardour.git] / gtk2_ardour / hit.cc
index 43dc8ce3474866a7b1b7a4ed6f6340bed65c2be9..41944eb3aff02f679cc66ee6272482dff822f4e0 100644 (file)
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
+#include "temporal/beats.h"
+
 #include "evoral/Note.hpp"
 
 #include "canvas/polygon.h"
 #include "canvas/debug.h"
 
-#include "midi_region_view.h"
-#include "public_editor.h"
 #include "hit.h"
 
 using namespace ARDOUR;
 using namespace ArdourCanvas;
 
-Hit::Hit (MidiRegionView& region, Item* parent, double size, const boost::shared_ptr<NoteType> note, bool with_events) 
+Hit::Hit (MidiRegionView& region, Item* parent, double size, const boost::shared_ptr<NoteType> note, bool with_events)
        : NoteBase (region, with_events, note)
 {
        _polygon = new ArdourCanvas::Polygon (parent);
@@ -78,8 +78,8 @@ Hit::hide ()
        _polygon->hide ();
 }
 
-void
-Hit::set_height (Distance height)
+Points
+Hit::points(Distance height)
 {
        /* draw a diamond */
 
@@ -91,7 +91,19 @@ Hit::set_height (Distance height)
        p.push_back (Duple (+half_height, 0)); // right, middle
        p.push_back (Duple (0, +half_height)); // bottom
 
-       _polygon->set (p);
+       return p;
+}
+
+void
+Hit::set_height (Distance height)
+{
+       _polygon->set (points(height));
+}
+
+Duple
+Hit::position ()
+{
+       return _polygon->position ();
 }
 
 void
@@ -104,26 +116,32 @@ Coord
 Hit::x0 () const
 {
        /* left vertex */
-       return _polygon->get()[0].x;
+       return _polygon->position().x + _polygon->get()[0].x;
 }
 
 Coord
 Hit::x1 () const
 {
        /* right vertex */
-       return _polygon->get()[2].x;
+       return _polygon->position().x + _polygon->get()[2].x;
 }
 
 Coord
 Hit::y0 () const
 {
        /* top vertex */
-       return _polygon->get()[1].y;
+       return _polygon->position().y + _polygon->get()[1].y;
 }
 
 Coord
 Hit::y1 () const
 {
        /* bottom vertex */
-       return _polygon->get()[3].y;
+       return _polygon->position().y + _polygon->get()[3].y;
+}
+
+void
+Hit::set_ignore_events (bool ignore)
+{
+       _polygon->set_ignore_events (ignore);
 }