]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/ligature-engraver.cc
* mf/feta-schrift.mf ("Trill (`tr')"): Fix typo.
[lilypond.git] / lily / ligature-engraver.cc
index f1b120d146cb44ca5126265b703bcfed145ca8fc..1c7c35db4f3cf7f79e40b36799a1797540f5e28e 100644 (file)
@@ -6,7 +6,9 @@
   (c) 2002--2004 Juergen Reuter <reuter@ipd.uka.de>
   
  */
+
 #include "ligature-engraver.hh"
+
 #include "spanner.hh"
 #include "score-engraver.hh"
 #include "note-head.hh"
@@ -14,7 +16,6 @@
 #include "warn.hh"
 #include "context.hh"
 
-
 /*
  * This abstract class provides the general framework for ligatures of
  * any kind.  It cares for handling start/stop ligatures requests and
@@ -58,7 +59,7 @@
  * Mensural_ligature_engraver) to the proper translator
  * (e.g. VoiceContext) to choose between various representations.
  * Since adding/removing an engraver to a translator is a global
- * action in the paper block, you can not mix various representations
+ * action in the layout block, you can not mix various representations
  * _within_ the same score.  Hence, for selecting a representation,
  * one would rather like to have a property that can be set e.g. for
  * several staves individually.  However, it seems that this approach
@@ -115,9 +116,9 @@ Ligature_engraver::override_stencil_callback ()
 {
   SCM target_callback = ly_symbol2scm ("print-function");
   SCM source_callback = ly_symbol2scm ("ligature-primitive-callback");
-  SCM noteHeadProperties = updated_grob_properties (daddy_context_, ly_symbol2scm ("NoteHead"));
-  SCM value = ly_cdr (scm_sloppy_assq (source_callback, noteHeadProperties));
-  execute_pushpop_property (daddy_context_, ly_symbol2scm ("NoteHead"),
+  SCM noteHeadProperties = updated_grob_properties (context (), ly_symbol2scm ("NoteHead"));
+  SCM value = scm_cdr (scm_sloppy_assq (source_callback, noteHeadProperties));
+  execute_pushpop_property (context (), ly_symbol2scm ("NoteHead"),
                            target_callback, value);
 }
 
@@ -139,7 +140,7 @@ Ligature_engraver::revert_stencil_callback ()
 {
   SCM symbol = ly_symbol2scm ("NoteHead");
   SCM key = ly_symbol2scm ("print-function");
-  execute_pushpop_property (daddy_context_, symbol, key, SCM_UNDEFINED);
+  execute_pushpop_property (context (), symbol, key, SCM_UNDEFINED);
 }
 
 void
@@ -205,8 +206,9 @@ Ligature_engraver::process_music ()
        }
 
       ligature_start_mom_ = now_mom ();
-      
-      announce_grob (ligature_, reqs_drul_[START]->self_scm ());
+
+      // TODO: dump cause into make_item/spanner. 
+      // announce_grob (ligature_, reqs_drul_[START]->self_scm ());
       override_stencil_callback ();
     }
 }
@@ -276,7 +278,7 @@ Ligature_engraver::acknowledge_grob (Grob_info info)
        }
       if (Rest::has_interface (info.grob_))
        {
-         info.music_cause ()->origin ()->warning (_ ("ligature may not contain rest; ignoring rest"));
+         info.music_cause ()->origin ()->warning (_ ("ignoring rest: ligature may not contain rest"));
          prev_start_req_->origin ()->warning (_ ("ligature was started here"));
          // TODO: maybe better should stop ligature here rather than
          // ignoring the rest?
@@ -284,7 +286,7 @@ Ligature_engraver::acknowledge_grob (Grob_info info)
     }
 }
 
-ENTER_DESCRIPTION (Ligature_engraver,
+ADD_TRANSLATOR (Ligature_engraver,
 /* descr */       "Abstract class; a concrete subclass handles Ligature_events by engraving Ligatures in a concrete style.",
 /* creats */      "",
 /* accepts */     "ligature-event",