use new Canvas::Note object for (sustained) note display
authorPaul Davis <paul@linuxaudiosystems.com>
Tue, 3 Jul 2018 15:21:53 +0000 (11:21 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 3 Jul 2018 15:21:53 +0000 (11:21 -0400)
gtk2_ardour/ghostregion.cc
gtk2_ardour/note.cc
gtk2_ardour/note.h
libs/canvas/wscript

index b531bd9aa827c8c0c0d5cf90e0ca9a4748a19b73..06946ec7ec8f45bc6333697384bea3f13ce19453 100644 (file)
@@ -41,8 +41,8 @@
 
 using namespace std;
 using namespace Editing;
-using namespace ArdourCanvas;
 using namespace ARDOUR;
+using ArdourCanvas::Duple;
 
 GhostRegion::GhostRegion(RegionView& rv,
                          ArdourCanvas::Container* parent,
@@ -325,7 +325,7 @@ MidiGhostRegion::update_contents_height ()
                        _tmp_rect->set (ArdourCanvas::Rect (_tmp_rect->x0(), y, _tmp_rect->x1(), y + h));
                } else {
                        _tmp_poly = static_cast<ArdourCanvas::Polygon*>(it->second->item);
-                       Duple position = _tmp_poly->position();
+                       ArdourCanvas::Duple position = _tmp_poly->position();
                        position.y = y;
                        _tmp_poly->set_position(position);
                        _tmp_poly->set(Hit::points(h));
index 6e1878afc0651c23b3d7bba5b34288693202185f..538751f31fb8b0f0264e552d3d0fddc7e2680d18 100644 (file)
 
 #include "evoral/Note.hpp"
 
-#include "canvas/rectangle.h"
+#include "canvas/note.h"
 #include "canvas/debug.h"
 
 #include "note.h"
 #include "public_editor.h"
 
 using namespace ARDOUR;
-using namespace ArdourCanvas;
+using ArdourCanvas::Coord;
+using ArdourCanvas::Duple;
 
 Note::Note (
-       MidiRegionView& region, Item* parent, const boost::shared_ptr<NoteType> note, bool with_events)
+       MidiRegionView& region, ArdourCanvas::Item* parent, const boost::shared_ptr<NoteType> note, bool with_events)
        : NoteBase (region, with_events, note)
-       , _rectangle (new ArdourCanvas::Rectangle (parent))
+       , _note (new ArdourCanvas::Note (parent))
 {
-       CANVAS_DEBUG_NAME (_rectangle, "note");
-       set_item (_rectangle);
+       CANVAS_DEBUG_NAME (_note, "note");
+       set_item (_note);
 }
 
 Note::~Note ()
 {
-       delete _rectangle;
+       delete _note;
 }
 
 void
 Note::move_event (double dx, double dy)
 {
-       _rectangle->set (_rectangle->get().translate (Duple (dx, dy)));
+       _note->set (_note->get().translate (Duple (dx, dy)));
 }
 
 Coord
 Note::x0 () const
 {
-       return _rectangle->x0 ();
+       return _note->x0 ();
 }
 
 Coord
 Note::x1 () const
 {
-       return _rectangle->x1 ();
+       return _note->x1 ();
 }
 
 Coord
 Note::y0 () const
 {
-       return _rectangle->y0 ();
+       return _note->y0 ();
 }
 
 Coord
 Note::y1 () const
 {
-       return _rectangle->y1 ();
+       return _note->y1 ();
 }
 
 void
 Note::set_outline_color (uint32_t color)
 {
-       _rectangle->set_outline_color (color);
+       _note->set_outline_color (color);
 }
 
 void
 Note::set_fill_color (uint32_t color)
 {
-       _rectangle->set_fill_color (color);
+       _note->set_fill_color (color);
 }
 
 void
 Note::show ()
 {
-       _rectangle->show ();
+       _note->show ();
 }
 
 void
 Note::hide ()
 {
-       _rectangle->hide ();
+       _note->hide ();
 }
 
 void
 Note::set (ArdourCanvas::Rect rect)
 {
-       _rectangle->set (rect);
+       _note->set (rect);
 }
 
 void
 Note::set_x0 (Coord x0)
 {
-       _rectangle->set_x0 (x0);
+       _note->set_x0 (x0);
 }
 
 void
 Note::set_y0 (Coord y0)
 {
-       _rectangle->set_y0 (y0);
+       _note->set_y0 (y0);
 }
 
 void
 Note::set_x1 (Coord x1)
 {
-       _rectangle->set_x1 (x1);
+       _note->set_x1 (x1);
 }
 
 void
 Note::set_y1 (Coord y1)
 {
-       _rectangle->set_y1 (y1);
+       _note->set_y1 (y1);
 }
 
 void
 Note::set_outline_what (ArdourCanvas::Rectangle::What what)
 {
-       _rectangle->set_outline_what (what);
+       _note->set_outline_what (what);
 }
 
 void
 Note::set_outline_all ()
 {
-       _rectangle->set_outline_all ();
+       _note->set_outline_all ();
 }
 
 void
 Note::set_ignore_events (bool ignore)
 {
-       _rectangle->set_ignore_events (ignore);
+       _note->set_ignore_events (ignore);
 }
index c002f9d3c1ed44860c3e0d2e7d552963df7df20d..60d1686a2f43fda2f49f71e51ceeecbfc61b2ca2 100644 (file)
@@ -27,6 +27,7 @@
 
 namespace ArdourCanvas {
        class Container;
+       class Note;
 }
 
 class Note : public NoteBase
@@ -66,7 +67,7 @@ public:
        void move_event (double dx, double dy);
 
 private:
-       ArdourCanvas::Rectangle* _rectangle;
+       ArdourCanvas::Note* _note;
 };
 
 #endif /* __gtk_ardour_note_h__ */
index d92695d6fd9e5d09a8495e97a0d9bba8ff5d8fec..13742a8374b84e6e123ae9622098c19195cb2609 100644 (file)
@@ -46,6 +46,7 @@ canvas_sources = [
         'line_set.cc',
         'lookup_table.cc',
         'meter.cc',
+        'note.cc',
         'outline.cc',
         'pixbuf.cc',
         'poly_item.cc',