/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2000--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 2000--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
SCM
Align_interface::align_to_minimum_distances (SCM smob)
{
- Grob *me = unsmob_grob (smob);
+ Grob *me = Grob::unsmob (smob);
me->set_property ("positioning-done", SCM_BOOL_T);
SCM
Align_interface::align_to_ideal_distances (SCM smob)
{
- Grob *me = unsmob_grob (smob);
+ Grob *me = Grob::unsmob (smob);
me->set_property ("positioning-done", SCM_BOOL_T);
Skyline_pair skyline = get_skylines (elems[j], a, other_common, pure, start, end);
if (skyline.is_empty ())
- dy = 0.0;
- else if (!last_nonempty_element)
- dy = skyline[-stacking_dir].max_height () + padding;
+ {
+ translates.push_back (where);
+ continue;
+ }
+
+ if (!last_nonempty_element)
+ {
+ dy = skyline[-stacking_dir].max_height () + padding;
+ for (vsize k = j; k-- > 0;)
+ translates[k] = stacking_dir * dy;
+ }
else
{
SCM spec = Page_layout_problem::get_spacing_spec (last_nonempty_element, elems[j], pure, start, end);
last_spaceable_element_pos = where;
last_spaceable_skyline = down_skyline;
}
- if (!skyline.is_empty ())
- last_nonempty_element = elems[j];
+ last_nonempty_element = elems[j];
}
if (pure)
Align_interface::set_ordered (Grob *me)
{
SCM ga_scm = me->get_object ("elements");
- Grob_array *ga = unsmob_grob_array (ga_scm);
+ Grob_array *ga = Grob_array::unsmob (ga_scm);
if (!ga)
{
ga_scm = Grob_array::make_array ();
- ga = unsmob_grob_array (ga_scm);
+ ga = Grob_array::unsmob (ga_scm);
me->set_object ("elements", ga_scm);
}
ADD_INTERFACE (Align_interface,
"Order grobs from top to bottom, left to right, right to left"
" or bottom to top. For vertical alignments of staves, the"
- " @code{break-system-details} of the left"
+ " @code{line-break-system-details} of the left"
" @rinternals{NonMusicalPaperColumn} may be set to tune"
" vertical spacing.",