]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/constrained-breaking.hh
When working out page breaks, take into account the fact that titles
[lilypond.git] / lily / include / constrained-breaking.hh
index 2478afcacaa0281638fc1deed859a4b0ef7e8155..5759a12c05666f78877391c3c972a8f8464f6454 100644 (file)
@@ -17,7 +17,9 @@
 struct Line_details {
   Real force_;
   Interval extent_;   /* Y-extent of the system */
-  Real padding_;  /* compulsory space after this system (if we're not last on a page) */
+
+  Real padding_;  /* compulsory space after this system (if we're not
+                    last on a page) */
   Real bottom_padding_;
   Real space_;    /* spring length */
   Real inverse_hooke_;
@@ -29,6 +31,8 @@ struct Line_details {
   Real page_penalty_;
   Real turn_penalty_;
 
+  bool title_;
+
   Line_details ()
   {
     force_ = infinity_f;
@@ -42,15 +46,16 @@ struct Line_details {
     break_penalty_ = 0;
     page_penalty_ = 0;
     turn_penalty_ = 0;
+    title_ = false;
   }
 
   Line_details (Prob *pb)
   {
     force_ = 0;
     extent_ = unsmob_stencil (pb->get_property ("stencil")) ->extent (Y_AXIS);
-    padding_ = 0;
+    padding_ = robust_scm2double (pb->get_property ("next-padding"), 0);
     bottom_padding_ = 0;
-    space_ = 1.0;
+    space_ = robust_scm2double (pb->get_property ("next-space"), 1.0);
     inverse_hooke_ = 1.0;
     break_permission_ = ly_symbol2scm ("allow");
     page_permission_ = pb->get_property ("page-break-permission");
@@ -58,6 +63,7 @@ struct Line_details {
     break_penalty_ = 0;
     page_penalty_ = robust_scm2double (pb->get_property ("page-break-penalty"), 0);
     turn_penalty_ = robust_scm2double (pb->get_property ("page-turn-penalty"), 0);
+    title_ = to_boolean (pb->get_property ("is-title"));
   }
 };