]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/new-fingering-engraver.cc
(stop_translation_timestep): new
[lilypond.git] / lily / new-fingering-engraver.cc
index e40c970a372574342580bf74b6d7376740a6de79..843cae76d21693a586078d3ec78e7d1d4774e0eb 100644 (file)
@@ -138,7 +138,7 @@ New_fingering_engraver::add_fingering (Grob * head,
   
   Side_position_interface::add_support (ft.script_, head);
 
-  int d = ly_scm2int (event->get_property ("digit"));
+  int d = scm_to_int (event->get_property ("digit"));
   
   /*
     TODO:
@@ -179,7 +179,7 @@ New_fingering_engraver::position_scripts ()
   */
   for (int i = 0; i < fingerings_.size (); i++)
     {      
-      fingerings_[i].position_ = ly_scm2int (fingerings_[i].head_ -> get_property ( "staff-position"));
+      fingerings_[i].position_ = scm_to_int (fingerings_[i].head_ -> get_property ( "staff-position"));
     }
 
   for (int i = fingerings_.size (); i--;)
@@ -286,24 +286,31 @@ New_fingering_engraver::stop_translation_timestep ()
 {
   if (fingerings_.size ())
     {
+      for (int i = 0;  i < fingerings_.size(); i++)
+       if (stem_ && to_boolean (fingerings_[i].script_->get_property ("add-stem-support")))
+         Side_position_interface::add_support (fingerings_[i].script_, stem_);
       position_scripts ();
       fingerings_.clear ();
     }
   
   for (int i =  articulations_.size (); i--;)
     {
-      Grob *sc = articulations_[i].script_;
+      Grob *script = articulations_[i].script_;
    
       for (int j = heads_.size () ; j--;)
-       Side_position_interface::add_support (sc, heads_[j]);
+       Side_position_interface::add_support (script, heads_[j]);
 
-      if (stem_ && to_dir (sc->get_property ("side-relative-direction")))
-       sc->set_property ("direction-source", stem_->self_scm ());
+      if (stem_ && to_dir (script->get_property ("side-relative-direction")))
+       script->set_property ("direction-source", stem_->self_scm ());
+
+
+      if (stem_ && to_boolean (script->get_property ("add-stem-support")))
+       Side_position_interface::add_support (script, stem_);
       
       if (articulations_[i].follow_into_staff_)
        {
-         sc->add_offset_callback (Side_position_interface::quantised_position_proc, Y_AXIS);
-         sc->set_property ("staff-padding" , SCM_EOL);
+         script->add_offset_callback (Side_position_interface::quantised_position_proc, Y_AXIS);
+         script->set_property ("staff-padding" , SCM_EOL);
        }
     }