/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1997--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1997--2012 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
if (span_bars[DOWN] != span_bars[UP])
return scm_from_double (0.0);
- return scm_from_double (0.6);
+ return scm_from_double (robust_scm2double (me->get_property ("bound-padding"), 0.5)
+ / 2.0);
}
MAKE_SCHEME_CALLBACK (Hairpin, print, 1);
do
{
Item *b = bounds[d];
+ Interval e = (Paper_column::has_interface (b) && b->break_status_dir ())
+ ? Axis_group_interface::generic_bound_extent (b, common, X_AXIS)
+ : robust_relative_extent (b, common, X_AXIS);
+
x_points[d] = b->relative_coordinate (common, X_AXIS);
if (broken [d])
{
if (d == LEFT)
- x_points[d] = b->extent (common, X_AXIS)[RIGHT];
+ x_points[d] = e[-d];
+ else
+ {
+ Real broken_bound_padding
+ = robust_scm2double (me->get_property ("broken-bound-padding"), 0.0);
+ extract_grob_set (me, "concurrent-hairpins", chp);
+ for (vsize i = 0; i < chp.size (); i++)
+ {
+ Spanner *span_elt = dynamic_cast<Spanner *> (chp[i]);
+ if (span_elt->get_bound (RIGHT)->break_status_dir () == LEFT)
+ broken_bound_padding = max (broken_bound_padding,
+ robust_scm2double (span_elt->get_property ("broken-bound-padding"), 0.0));
+ }
+ x_points[d] -= d * broken_bound_padding;
+ }
}
else
{
if (Text_interface::has_interface (b))
{
- Interval e = b->extent (common, X_AXIS);
if (!e.is_empty ())
x_points[d] = e[-d] - d * padding;
}
}
}
- Interval e = (Axis_group_interface::has_interface (b)
- ? Axis_group_interface::generic_bound_extent (b, common, X_AXIS)
- : robust_relative_extent (b, common, X_AXIS));
if (neighbor_found)
{
if (Hairpin::has_interface (adjacent))
x_points[d] = e[-d];
else
x_points[d] = e[d];
+
+ if (Item::is_non_musical (b))
+ x_points[d] -= d * padding;
}
}
}
}
while (flip (&d) != LEFT);
- // here, add padding for barlines that are not at the end of a staff
- if (Item::is_non_musical (bounds[RIGHT]) && bounds[RIGHT]->break_status_dir () == 0)
- x_points[RIGHT] -= padding;
-
- // here, add padding for barlines that are at the end of a staff
- Real broken_bound_padding = 0.0;
- if (bounds[RIGHT]->break_status_dir () == -1)
- {
- extract_grob_set (me, "concurrent-hairpins", chp);
- for (vsize i = 0; i < chp.size (); i++)
- {
- Spanner *span_elt = dynamic_cast<Spanner *> (chp[i]);
- if (span_elt->get_bound (RIGHT)->break_status_dir () == -1)
- broken_bound_padding = max (broken_bound_padding,
- robust_scm2double (span_elt->get_property ("broken-bound-padding"), 0.0));
- }
- }
- x_points[RIGHT] -= broken_bound_padding;
-
Real width = x_points[RIGHT] - x_points[LEFT];
if (width < 0)
}
bool continued = broken[Direction (-grow_dir)];
+ bool continuing = broken[Direction (grow_dir)];
Real starth = 0;
Real endh = 0;
if (grow_dir < 0)
{
- starth = height;
- endh = continued ? height / 2 : 0.0;
+ starth = continuing ? 2 * height / 3 : height;
+ endh = continued ? height / 3 : 0.0;
}
else
{
- starth = continued ? height / 2 : 0.0;
- endh = height;
+ starth = continued ? height / 3 : 0.0;
+ endh = continuing ? 2 * height / 3 : height;
}
/*