X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fpage-layout-problem.hh;h=629528bb53db51c0f4ea5acee8646b59abda545a;hb=54b02666750062788185bd3f99e644d621e348c2;hp=3cbf6eb30d8c6675e4722900410669336f9e78ca;hpb=2be50a355fc735ee7dedb6b8964888bb3d6934af;p=lilypond.git diff --git a/lily/include/page-layout-problem.hh b/lily/include/page-layout-problem.hh index 3cbf6eb30d..629528bb53 100644 --- a/lily/include/page-layout-problem.hh +++ b/lily/include/page-layout-problem.hh @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2009--2010 Joe Neeman + Copyright (C) 2009--2011 Joe Neeman LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -26,7 +26,7 @@ class Page_layout_problem { public: - Page_layout_problem (Paper_book*, SCM page, SCM systems); + Page_layout_problem (Paper_book*, SCM page, SCM systems, int footnote_count); SCM solution (bool ragged); void set_header_height (Real); @@ -34,8 +34,12 @@ public: static bool read_spacing_spec (SCM spec, Real* dest, SCM sym); static bool is_spaceable (Grob *g); static SCM get_details (Grob *g); + static vsize get_footnote_count (SCM lines); + static SCM get_footnotes_from_lines (SCM lines, int counter, Paper_book *pb); + static Stencil* get_footnote_separator_stencil (Output_def *paper); static SCM get_spacing_spec (Grob *before, Grob *after, bool pure, int start, int end); static Real get_fixed_spacing (Grob *before, Grob *after, int spaceable_index, bool pure, int start, int end); + static void add_footnotes_to_footer (SCM footnotes, Stencil *foot, Paper_book *pb); protected: void append_system (System*, Spring const&, Real indent, Real padding); @@ -54,17 +58,22 @@ protected: Prob *prob; vector staves; vector min_offsets; + // Store the appropriate '*-*-spacing 'padding, + // for spacing any adjacent loose line + Real padding; - Element (vector const& a, vector const& o) + Element (vector const& a, vector const& o, Real p) { staves = a; min_offsets = o; + padding = p; prob = 0; } - Element (Prob *p) + Element (Prob *p, Real pad) { prob = p; + padding = pad; } } Element;