]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/score-engraver.cc
* scm/define-context-properties.scm
[lilypond.git] / lily / score-engraver.cc
index 8462163debd641e45b41051eb6f799a2a0335898..432d18b720bef59146ccafa4a4346d08ea9c1492 100644 (file)
@@ -79,7 +79,7 @@ Score_engraver::prepare (Moment m)
   SCM w = m.smobbed_copy ();
   command_column_->set_property ("when", w);
   musical_column_->set_property ("when", w);
-  
+
   recurse_over_translators (context (), &Translator::start_translation_timestep, DOWN);
 }
 
@@ -104,14 +104,14 @@ Score_engraver::initialize ()
           + "\n" +_ ("Music font has not been installed properly.  Aborting"));
 
   SCM pfa_path = ly_kpathsea_expand_path (scm_makfrom0str ("ecrm10.pfa"));
-  if (!ly_c_string_p (pfa_path))
+  if (!scm_is_string (pfa_path))
     error (_f ("can't find `%s'", "ecrm10.pfa")
           + "\n" +_f ("Install the ec-mftraced package from %s. Aborting",
                       "http://lilypond.org/download/fonts/"));
    
 
   pscore_ = new Paper_score;
-  pscore_->paper_ = dynamic_cast<Output_def*> (get_output_def ());
+  pscore_->layout_ = dynamic_cast<Output_def*> (get_output_def ());
 
   SCM props = updated_grob_properties (context (), ly_symbol2scm ("System"));
 
@@ -146,7 +146,7 @@ Score_engraver::one_time_step ()
   if (!to_boolean (get_property ("skipTypesetting")))
     {
       recurse_over_translators (context (), &Engraver::process_music, UP);
-      recurse_over_translators (context (), &Engraver::do_announces, UP);
+      Engraver_group_engraver::do_announces();
     }
   
   recurse_over_translators (context (), &Translator::stop_translation_timestep, UP);
@@ -245,11 +245,11 @@ Score_engraver::try_music (Music *m)
   if (m->is_mus_type ("break-event"))
     {
       SCM pen = command_column_->get_property ("penalty");
-      Real total_penalty = ly_c_number_p (pen) ? ly_scm2double (pen) : 0.0;
+      Real total_penalty = scm_is_number (pen) ? scm_to_double (pen) : 0.0;
 
       SCM mpen = m->get_property ("penalty");
-      if (ly_c_number_p (mpen))
-       total_penalty += ly_scm2double (mpen);
+      if (scm_is_number (mpen))
+       total_penalty += scm_to_double (mpen);
 
       command_column_->set_property ("penalty", scm_make_real (total_penalty));
 
@@ -258,10 +258,10 @@ Score_engraver::try_music (Music *m)
        forbid_breaks ();
 
       SCM page_pen = command_column_->get_property ("page-penalty");
-      Real total_pp = ly_c_number_p (page_pen) ? ly_scm2double (page_pen) : 0.0;
+      Real total_pp = scm_is_number (page_pen) ? scm_to_double (page_pen) : 0.0;
       SCM mpage_pen = m->get_property ("page-penalty");
-      if (ly_c_number_p (mpage_pen))
-       total_pp += ly_scm2double (mpage_pen);
+      if (scm_is_number (mpage_pen))
+       total_pp += scm_to_double (mpage_pen);
       
       command_column_->set_property ("page-penalty", scm_make_real (total_pp));
       return true;
@@ -291,6 +291,22 @@ Score_engraver::acknowledge_grob (Grob_info gi)
                                         ly_symbol2scm ("spacing-wishes"),
                                         gi.grob_);
     }
+
+  if (Axis_group_interface::has_interface (gi.grob_)
+      && gi.grob_->internal_has_interface (ly_symbol2scm ("vertically-spaceable-interface")))
+    {
+      SCM spaceable = get_property ("verticallySpacedContexts");
+      Context *orig = gi.origin_contexts (this)[0];
+      
+      if (scm_memq (ly_symbol2scm (orig->context_name ().to_str0()),
+                   spaceable) != SCM_BOOL_F)
+       {
+         Pointer_group_interface::add_grob (system_,
+                                            ly_symbol2scm ("spaceable-staves"),
+                                            gi.grob_);
+       }
+    }
+  
 }
 
 
@@ -307,6 +323,6 @@ ENTER_DESCRIPTION (Score_engraver,
 ,
 /* creats*/       "System PaperColumn NonMusicalPaperColumn", 
 /* accepts */     "break-event",
-/* acks  */       "note-spacing-interface staff-spacing-interface",
-/* reads */       "currentMusicalColumn currentCommandColumn",
+/* acks  */       "note-spacing-interface staff-spacing-interface axis-group-interface",
+/* reads */       "currentMusicalColumn currentCommandColumn verticallySpacedContexts",
 /* write */       "");