]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/page-spacing.hh
Run grand-replace (issue 3765)
[lilypond.git] / lily / include / page-spacing.hh
index be261735aa2f61ae608220bb280178ca9c76dfb1..92fba0210a238972787dec8a1af5deb467e0b0ea 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2006--2011 Joe Neeman <joeneeman@gmail.com>
+  Copyright (C) 2006--2014 Joe Neeman <joeneeman@gmail.com>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -43,7 +43,6 @@
 const Real BAD_SPACING_PENALTY = 1e6;
 const Real TERRIBLE_SPACING_PENALTY = 1e8;
 
-
 /* for page_count > 2, we use a dynamic algorithm similar to
    constrained-breaking -- we have a class that stores the intermediate
    calculations so they can be reused for querying different page counts.
@@ -51,7 +50,7 @@ const Real TERRIBLE_SPACING_PENALTY = 1e8;
 class Page_spacer
 {
 public:
-  Page_spacer (vector<Line_details> const &lines, vsize first_page_num, Page_breaking const*);
+  Page_spacer (vector<Line_details> const &lines, vsize first_page_num, Page_breaking const *);
   Page_spacing_result solve (vsize page_count);
   Page_spacing_result solve ();
 
@@ -102,6 +101,7 @@ struct Page_spacing
   Real rod_height_;
   Real spring_len_;
   Real inverse_spring_k_;
+  bool has_footnotes_;
 
   Line_details last_line_;
   Line_details first_line_;
@@ -111,11 +111,13 @@ struct Page_spacing
   {
     page_height_ = page_height;
     breaker_ = breaker;
+    has_footnotes_ = false;
     clear ();
   }
 
   void calc_force ();
   void resize (Real new_height);
+  Real account_for_footnotes (Line_details const &line);
   void append_system (const Line_details &line);
   void prepend_system (const Line_details &line);
   void clear ();