]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/cluster-engraver.cc
2003 -> 2004
[lilypond.git] / lily / cluster-engraver.cc
index 92162413191e13c4ceca3be5a2f22f58039c566a..494d3d147bd9956f794bc3fe7cbcd51176c1ce11 100644 (file)
@@ -1,7 +1,7 @@
 /*
   cluster-engraver.cc -- implement Cluster_engraver
 
-  (c) 2002--2003 Juergen Reuter <reuter@ipd.uka.de>
+  (c) 2002--2004 Juergen Reuter <reuter@ipd.uka.de>
 
   Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
@@ -67,15 +67,7 @@ Cluster_spanner_engraver::typeset_grobs ()
 bool
 Cluster_spanner_engraver::try_music (Music *m)
 {
-  if (m->is_mus_type ("abort-event"))
-    {
-      if (spanner_)
-       {
-         spanner_->suicide ();
-         spanner_ = 0;
-       }
-    }
-  else if (m->is_mus_type ("cluster-note-event"))
+  if (m->is_mus_type ("cluster-note-event"))
     {
       cluster_notes_.push (m);
       return true;
@@ -104,15 +96,16 @@ Cluster_spanner_engraver::process_music ()
          pmin = pmin <? p;
        }
       
-      Item *it = new Item (get_property ("ClusterSpannerBeacon"));
-      it->set_grob_property ("positions", scm_cons (gh_int2scm (pmin),
-                                                  gh_int2scm (pmax)));
-      
+      beacon_ = make_item ("ClusterSpannerBeacon");
+      beacon_->set_grob_property ("positions",
+                                 scm_cons (gh_int2scm (pmin),
+                                           gh_int2scm (pmax)));
+      announce_grob (beacon_, cluster_notes_[0]->self_scm ());
     }
 
   if (beacon_ && !spanner_)
     {    
-      spanner_ = new Spanner (get_property ("Cluster"));
+      spanner_ = make_spanner ("ClusterSpanner");
       announce_grob (spanner_, cluster_notes_[0]->self_scm ());
     }
   
@@ -145,8 +138,9 @@ Cluster_spanner_engraver::acknowledge_grob (Grob_info info)
 
 ENTER_DESCRIPTION(Cluster_spanner_engraver,
 /* descr */    "Engraves a cluster using Spanner notation ",
-/* creats*/    "Cluster",
-/* accepts */  "cluster-note-event abort-event",
+/* creats*/    "ClusterSpanner ClusterSpannerBeacon",
+/* accepts */  "cluster-note-event",
 /* acks  */    "note-column-interface",
 /* reads */    "",
 /* write */    "");
+