X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fsystem.cc;h=e686e3b58cad0585e3ea7303686e50bfeb5e13aa;hb=3dd83a7bb519f2a5128bc037762f74c73461adc1;hp=663d654e0b67cd8c916c26ccf061da51fa45c9ee;hpb=a0df7dcd3b849dd7284f9325704584d916b8f485;p=lilypond.git diff --git a/lily/system.cc b/lily/system.cc index 663d654e0b..e686e3b58c 100644 --- a/lily/system.cc +++ b/lily/system.cc @@ -13,18 +13,16 @@ #include "axis-group-interface.hh" #include "grob-array.hh" #include "international.hh" +#include "lookup.hh" #include "main.hh" #include "output-def.hh" #include "paper-column.hh" #include "paper-score.hh" #include "paper-system.hh" #include "pointer-group-interface.hh" -#include "spacing-interface.hh" +#include "skyline-pair.hh" #include "staff-symbol-referencer.hh" #include "warn.hh" -#include "lookup.hh" - -extern bool debug_skylines; System::System (System const &src) : Spanner (src) @@ -227,11 +225,17 @@ System::break_into_pieces (vector const &breaking) system->set_bound (LEFT, c[0]); system->set_bound (RIGHT, c.back ()); + SCM system_labels = SCM_EOL; for (vsize j = 0; j < c.size (); j++) { c[j]->translate_axis (breaking[i].config_[j], X_AXIS); dynamic_cast (c[j])->system_ = system; + /* collect the column labels */ + SCM col_labels = c[j]->get_property ("labels"); + if (scm_is_pair (col_labels)) + system_labels = scm_append (scm_list_2 (col_labels, system_labels)); } + system->set_property ("labels", system_labels); set_loose_columns (system, &breaking[i]); broken_intos_.push_back (system); @@ -390,8 +394,12 @@ System::get_paper_system () Skyline_pair *skylines = Skyline_pair::unsmob (get_property ("vertical-skylines")); if (skylines) { - sys_stencil.add_stencil (Lookup::points_to_line_stencil (0.1, (*skylines)[UP].to_points (X_AXIS)).in_color (255, 0, 0)); - sys_stencil.add_stencil (Lookup::points_to_line_stencil (0.1, (*skylines)[DOWN].to_points (X_AXIS)).in_color (0, 255, 0)); + Stencil up + = Lookup::points_to_line_stencil (0.1, (*skylines)[UP].to_points (X_AXIS)); + Stencil down + = Lookup::points_to_line_stencil (0.1, (*skylines)[DOWN].to_points (X_AXIS)); + sys_stencil.add_stencil (up.in_color (255, 0, 0)); + sys_stencil.add_stencil (down.in_color (0, 255, 0)); } } @@ -402,7 +410,7 @@ System::get_paper_system () /* information that the page breaker might need */ Grob *right_bound = this->get_bound (RIGHT); - pl->set_property ("skylines", this->get_property ("skylines")); + pl->set_property ("vertical-skylines", this->get_property ("vertical-skylines")); pl->set_property ("page-break-permission", right_bound->get_property ("page-break-permission")); pl->set_property ("page-turn-permission", right_bound->get_property ("page-turn-permission")); pl->set_property ("page-break-penalty", right_bound->get_property ("page-break-penalty")); @@ -507,12 +515,14 @@ get_root_system (Grob *me) } ADD_INTERFACE (System, - "This is the toplevel object: each object in a score " - "ultimately has a System object as its X and Y parent. ", + "This is the top-level object: Each object in a score" + " ultimately has a @code{System} object as its X and" + " Y@tie{}parent.", /* properties */ "all-elements " "columns " + "labels " "pure-Y-extent " "spaceable-staves " "skyline-distance "