]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/paper-score.cc
Corrected typo by Jan
[lilypond.git] / lily / paper-score.cc
index 800aa132ed77023f08d0388d5e9c4c7933de4124..98b734a6534da32429d9a409a45d25824c86b0f3 100644 (file)
 #include "system.hh"
 #include "warn.hh"
 
-Paper_score::Paper_score ()
+Paper_score::Paper_score (Output_def *layout)
 {
-  layout_ = 0;
+  layout_ = layout;
   system_ = 0;
+  systems_ = SCM_EOL;
+  paper_systems_ = SCM_EOL;
 }
 
 Paper_score::Paper_score (Paper_score const &s)
@@ -33,8 +35,18 @@ Paper_score::Paper_score (Paper_score const &s)
   assert (false);
 }
 
+
+void
+Paper_score::derived_mark () const
+{
+  if (layout_)
+    scm_gc_mark (layout_->self_scm ());
+  scm_gc_mark (systems_);
+  scm_gc_mark (paper_systems_);
+}
+
 void
-Paper_score::typeset_line (System *system)
+Paper_score::typeset_system (System *system)
 {
   if (!system_)
     system_ = system;
@@ -59,13 +71,13 @@ Paper_score::calc_breaking ()
   return sol;
 }
 
-SCM
-Paper_score::process (String)
+void
+Paper_score::process ()
 {
   if (be_verbose_global)
     message (_f ("Element count %d (spanners %d) ",
-                            system_->element_count (),
-                            system_->spanner_count ()));
+                system_->element_count (),
+                system_->spanner_count ()));
 
   message (_ ("Preprocessing graphical objects...") + " ");
 
@@ -81,12 +93,25 @@ Paper_score::process (String)
 
   Array<Column_x_positions> breaking = calc_breaking ();
   system_->break_into_pieces (breaking);
-  SCM lines = system_->get_lines ();
-
-  /*
-    retain Grobs, since they are pointed to by the point & click data
-    structures, and are not marked fully, because child -> parent
-    links aren't marked.
-   */
-  return lines;
+
+  paper_systems_ = system_->get_paper_systems ();
+}
+
+System *
+Paper_score::root_system () const
+{
+  return system_;
+}
+
+Output_def *
+Paper_score::layout () const
+{
+  return layout_;
+}
+  
+
+SCM
+Paper_score::get_paper_systems () const
+{
+  return paper_systems_;
 }