Changing active-state needs no color lookup
[ardour.git] / gtk2_ardour / hit.cc
index c06160f3b2c1df0e6fb95c9c2ebb35f68643564a..d750ed3f9d75a63750f9ead980e80e41e03dde14 100644 (file)
@@ -1,36 +1,35 @@
 /*
-    Copyright (C) 2007 Paul Davis
-    Author: Dave Robillard
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
+ * Copyright (C) 2013-2017 Paul Davis <paul@linuxaudiosystems.com>
+ * Copyright (C) 2014 David Robillard <d@drobilla.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 "utils.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);
@@ -79,8 +78,8 @@ Hit::hide ()
        _polygon->hide ();
 }
 
-void
-Hit::set_height (Distance height)
+Points
+Hit::points(Distance height)
 {
        /* draw a diamond */
 
@@ -92,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
@@ -105,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);
 }