]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/grace-engraver-group.cc
patch::: 1.5.0.jcn1
[lilypond.git] / lily / grace-engraver-group.cc
index 8f932cc6326dec2cd9e9274c6e5b83bf45908e5b..72c1ebdcc6d3e81e62869849844c82e420253c8d 100644 (file)
@@ -3,13 +3,13 @@
   
   source file of the GNU LilyPond music typesetter
   
-  (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c) 1999--2001 Han-Wen Nienhuys <hanwen@cs.uu.nl>
   
  */
 
 #include "grace-engraver-group.hh"
 #include "lily-guile.hh"
-#include "score-element.hh"
+#include "grob.hh"
 #include "musical-request.hh"
 
 void
@@ -26,53 +26,57 @@ Grace_engraver_group::finish ()
   removal_processing ();       // ugr. We'd want to have this done by our parents.
   for (int i=0; i < announce_to_top_.size (); i++)
     {
-      Engraver::announce_element (announce_to_top_[i]);
+      Engraver::announce_grob (announce_to_top_[i]);
     }
 
   for (int i=0; i < typeset_us_.size (); i++)
     {
-      Engraver::typeset_element (typeset_us_[i]);
+      Engraver::typeset_grob (typeset_us_[i]);
     }
   typeset_us_.clear ();
   calling_self_b_ = false;
 }
 
 void
-Grace_engraver_group::do_removal_processing ()
+Grace_engraver_group::finalize ()
 {
-  Engraver_group_engraver::do_removal_processing ();
+  Engraver_group_engraver::finalize ();
 }
 
 void
-Grace_engraver_group::announce_element (Score_element_info inf)
+Grace_engraver_group::announce_grob (Grob_info inf)
 {
   announce_info_arr_.push (inf);
   // do not propagate to top
   announce_to_top_.push (inf);
 
-  inf.elem_l_->set_elt_property ("grace", SCM_BOOL_T);
+  inf.elem_l_->set_grob_property ("grace", SCM_BOOL_T);
 }
 
 void
-Grace_engraver_group::typeset_element (Score_element*e)
+Grace_engraver_group::typeset_grob (Grob*e)
 {
   typeset_us_.push (e);
 }
 
 
-Grace_engraver_group::Grace_engraver_group()
+Grace_engraver_group::Grace_engraver_group ()
 {
   calling_self_b_ = false;
 }
 
 void
-Grace_engraver_group::process ()
+Grace_engraver_group::one_time_step ()
 {
   calling_self_b_  = true;
-  //process_music ();
-  announces();
-  pre_move_processing();
-  check_removal();
+
+  if (!to_boolean (get_property (ly_symbol2scm ("skipTypesetting"))))
+    {
+      process_music ();
+      announces ();
+    }
+  stop_translation_timestep ();
+  check_removal ();
   calling_self_b_ = false;
 }
 
@@ -85,14 +89,14 @@ Grace_engraver_group::each (Method_pointer method)
 }
 
 
-ADD_THIS_TRANSLATOR(Grace_engraver_group);
+ADD_THIS_TRANSLATOR (Grace_engraver_group);
 
 
 /*
   don't let the commands trickle up.
  */
 bool
-Grace_engraver_group::do_try_music (Music *m)
+Grace_engraver_group::try_music (Music *m)
 {
   bool hebbes_b = try_music_on_nongroup_children (m);
 
@@ -117,3 +121,10 @@ Grace_engraver_group::pass_to_top_b (Music *m) const
   return false;
 }
 
+void
+Grace_engraver_group::initialize ()
+{
+  calling_self_b_ = true;
+  Engraver_group_engraver::initialize ();
+  calling_self_b_ = false;  
+}