X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fhit.cc;h=e3a227d3c4167faafe8577d9673bf3f949ffbd2e;hb=ae3c50c495ffadbc62103cc1d3a61af2b48f423e;hp=c06160f3b2c1df0e6fb95c9c2ebb35f68643564a;hpb=ff46a3c3a216afc97fee0c796ac2eaa92d58becb;p=ardour.git diff --git a/gtk2_ardour/hit.cc b/gtk2_ardour/hit.cc index c06160f3b2..e3a227d3c4 100644 --- a/gtk2_ardour/hit.cc +++ b/gtk2_ardour/hit.cc @@ -17,20 +17,18 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include "evoral/Beats.hpp" #include "evoral/Note.hpp" #include "canvas/polygon.h" #include "canvas/debug.h" -#include "midi_region_view.h" -#include "public_editor.h" -#include "utils.h" #include "hit.h" using namespace ARDOUR; using namespace ArdourCanvas; -Hit::Hit (MidiRegionView& region, Item* parent, double size, const boost::shared_ptr note, bool with_events) +Hit::Hit (MidiRegionView& region, Item* parent, double size, const boost::shared_ptr note, bool with_events) : NoteBase (region, with_events, note) { _polygon = new ArdourCanvas::Polygon (parent); @@ -79,8 +77,8 @@ Hit::hide () _polygon->hide (); } -void -Hit::set_height (Distance height) +Points +Hit::points(Distance height) { /* draw a diamond */ @@ -92,7 +90,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 @@ -105,26 +115,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); }