/*
- page-layout-problem.hh -- space systems nicely on a page. If systems can
- be stretched, do that too.
+ This file is part of LilyPond, the GNU music typesetter.
- source file of the GNU LilyPond music typesetter
+ Copyright (C) 2009--2010 Joe Neeman <joeneeman@gmail.com>
- (c) 2009 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
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ LilyPond is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef PAGE_LAYOUT_HH
static bool read_spacing_spec (SCM spec, Real* dest, SCM sym);
static bool is_spaceable (Grob *g);
static SCM get_details (Grob *g);
- static SCM get_spacing_spec (Grob *before, Grob *after);
+ 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);
protected:
void append_system (System*, Spring const&, Real padding);
void solve_rod_spring_problem (bool ragged);
SCM find_system_offsets ();
void distribute_loose_lines (vector<Grob*> const&, vector<Real> const&, Real, Real);
- void add_loose_lines_as_spaceable_lines (vector<Grob*> const&,
- vector<Real> const&,
- vsize start, vsize end);
- static Grob* find_vertical_alignment (System*);
static void build_system_skyline (vector<Grob*> const&, vector<Real> const&, Skyline* up, Skyline* down);
static vector<Grob*> filter_dead_elements (vector<Grob*> const&);
Real page_height_;
Real header_height_;
Real footer_height_;
+ Real header_padding_;
+ Real footer_padding_;
};
#endif /* PAGE_LAYOUT_HH */