X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fhit.cc;h=41944eb3aff02f679cc66ee6272482dff822f4e0;hb=95a61717faa4b427be0e7821ee91f7df81065815;hp=43dc8ce3474866a7b1b7a4ed6f6340bed65c2be9;hpb=ad017365f7a73f8ba57f667cc1aa36478b48c50e;p=ardour.git diff --git a/gtk2_ardour/hit.cc b/gtk2_ardour/hit.cc index 43dc8ce347..41944eb3af 100644 --- a/gtk2_ardour/hit.cc +++ b/gtk2_ardour/hit.cc @@ -17,19 +17,19 @@ 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 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); @@ -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); }