/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2009--2010 Joe Neeman <joeneeman@gmail.com>
+ Copyright (C) 2009--2011 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
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);
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 padding);
+ void append_system (System*, Spring const&, Real indent, Real padding);
void append_prob (Prob*, Spring const&, Real padding);
void solve_rod_spring_problem (bool ragged);
Prob *prob;
vector<Grob*> staves;
vector<Real> min_offsets;
+ // Store the appropriate '*-*-spacing 'padding,
+ // for spacing any adjacent loose line
+ Real padding;
- Element (vector<Grob*> const& a, vector<Real> const& o)
+ Element (vector<Grob*> const& a, vector<Real> 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;