]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/score-engraver.cc
patch::: 1.3.86.jcn2
[lilypond.git] / lily / score-engraver.cc
index 8c878da7bf574098746a79434ae254bf95c5e68d..66b759e7d237bc7c9cd31c67ce45afd7fbdd1b35 100644 (file)
@@ -7,7 +7,7 @@
 */
 
 #include "debug.hh"
-#include "dimension-cache.hh"
+
 #include "line-of-score.hh"
 #include "item.hh"
 #include "score-engraver.hh"
@@ -35,9 +35,8 @@ Score_engraver::prepare (Moment w)
   SCM props = get_property (ly_symbol2scm ("basicPaperColumnProperties"));
   set_columns (new Paper_column (props),  new Paper_column (props));
   
-  SCM when = smobify (new Moment (w));
-  command_column_l_->set_elt_property ("when", when);
-  musical_column_l_->set_elt_property ("when", when);
+  command_column_l_->set_elt_property ("when", w.make_scm());
+  musical_column_l_->set_elt_property ("when", w.make_scm());
   command_column_l_->set_elt_property ("breakable", SCM_BOOL_T);
   
   Score_element_info i1(command_column_l_, 0), i2 (musical_column_l_,0);
@@ -82,11 +81,9 @@ Score_engraver::do_removal_processing()
   Engraver_group_engraver::do_removal_processing();
   scoreline_l_->set_bound(RIGHT,command_column_l_);
   command_column_l_->set_elt_property ("breakable", SCM_BOOL_T);
-
   
   typeset_all ();
 
-
   set_columns (0,0);
 }
 
@@ -149,7 +146,7 @@ Score_engraver::typeset_all()
            if (!s->get_bound (d))
              {
                s->set_bound(d, command_column_l_);
-               ::warning (_f ("unbound spanner `%s'", classname(s)));
+               ::warning (_f ("unbound spanner `%s'", s->name().ch_C()));
              }
          } while (flip(&d) != LEFT);
        }
@@ -158,12 +155,12 @@ Score_engraver::typeset_all()
          if (!elem_p->parent_l (X_AXIS))
            {
              bool br = to_boolean (elem_p->get_elt_property ("breakable"));
-             Axis_group_interface gi ((br) ? command_column_l_ : musical_column_l_) ;
-             gi.add_element(elem_p);
+             Axis_group_interface::add_element (br ? command_column_l_ : musical_column_l_, elem_p);
+
            }
        }
       if (!elem_p->parent_l(Y_AXIS))
-       Axis_group_interface (scoreline_l_).add_element (elem_p);
+       Axis_group_interface::add_element (scoreline_l_, elem_p);
     }
   elem_p_arr_.clear();
 }
@@ -171,16 +168,16 @@ Score_engraver::typeset_all()
 void
 Score_engraver::do_pre_move_processing()
 {
+  // this generates all items.
+  Engraver_group_engraver::do_pre_move_processing();
+  
+  typeset_all();
   if (to_boolean (command_column_l_->get_elt_property ("breakable")))
     {
       breaks_i_ ++;
       if (! (breaks_i_%8))
        progress_indication ("[" + to_str ( breaks_i_) + "]");
     }
-  // this generates all items.
-  Engraver_group_engraver::do_pre_move_processing();
-  
-  typeset_all();
 }
 
 void
@@ -195,20 +192,25 @@ Score_engraver::set_columns (Paper_column *new_command_l,
       if (*current[i])
        {
          scoreline_l_->add_column ((*current[i]));
-         if (!(*current[i])->used_b())
+#if 0
+         /*
+           TODO: delay this decision.
+          */
+         if (!Paper_column::used_b (*current[i]))
            {
              (*current[i])->suicide ();
              *current[i]  =0;
            }
+#endif
        }
       if (news[i])
        *current[i] = news[i];
     }
 
   if (new_musical_l)
-    set_property ("currentMusicalColumn", new_musical_l->self_scm_);
+    set_property ("currentMusicalColumn", new_musical_l->self_scm ());
   if (new_command_l)
-    set_property ("currentCommandColumn", new_command_l->self_scm_);  
+    set_property ("currentCommandColumn", new_command_l->self_scm ());  
 }
 
 Music_output*
@@ -266,5 +268,9 @@ Score_engraver::do_add_processing ()
   assert (!daddy_trans_l_);
   pscore_p_ = new Paper_score;
   pscore_p_->paper_l_ = dynamic_cast<Paper_def*>(output_def_l_);
+
+  SCM props = get_property(ly_symbol2scm ("basicLineOfScoreProperties"));
+
+  pscore_p_->typeset_line (new Line_of_score (props));
 }