From: fred Date: Tue, 26 Mar 2002 23:10:24 +0000 (+0000) Subject: lilypond-1.3.41 X-Git-Tag: release/1.5.59~1708 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=80963992671c4f36d87e49f8436b7a444e1b3417;p=lilypond.git lilypond-1.3.41 --- diff --git a/lily/axis-group-engraver.cc b/lily/axis-group-engraver.cc index d6f881d6fc..5da70fe929 100644 --- a/lily/axis-group-engraver.cc +++ b/lily/axis-group-engraver.cc @@ -37,8 +37,8 @@ Axis_group_engraver::get_spanner_p () const void Axis_group_engraver::do_removal_processing () { - String name = daddy_grav_l ()->type_str_ + "VerticalExtent"; - SCM dims = get_property (name); + String type = daddy_grav_l ()->type_str_ ; + SCM dims = get_property (type + "VerticalExtent"); if (gh_pair_p (dims) && gh_number_p (gh_car (dims)) && gh_number_p (gh_cdr (dims))) @@ -46,6 +46,17 @@ Axis_group_engraver::do_removal_processing () staffline_p_->dim_cache_[Y_AXIS]->set_extent_callback (&Score_element::preset_extent); staffline_p_->set_elt_property ("extent-Y", dims); } + + dims = get_property (type + "MinimumVerticalExtent"); + if (gh_pair_p (dims) && gh_number_p (gh_car (dims)) + && gh_number_p (gh_cdr (dims))) + staffline_p_->set_elt_property ("minimum-extent-Y", dims); + + dims = get_property (type + "ExtraVerticalExtent"); + if (gh_pair_p (dims) && gh_number_p (gh_car (dims)) + && gh_number_p (gh_cdr (dims))) + staffline_p_->set_elt_property ("extra-extent-Y", dims); + staffline_p_->set_bound(RIGHT,get_staff_info().command_pcol_l ()); typeset_element (staffline_p_); diff --git a/lily/score-element.cc b/lily/score-element.cc index 342270343c..8da3d235a0 100644 --- a/lily/score-element.cc +++ b/lily/score-element.cc @@ -510,8 +510,34 @@ Interval Score_element::extent (Axis a) const { Dimension_cache const * d = dim_cache_[a]; + Interval ext = d->get_dim (); - return d->get_dim (); + + SCM extra = get_elt_property (a == X_AXIS ? "extra-extent-X" + : "extra-extent-Y"); + + + /* + signs ? + */ + Real s = paper_l ()->get_var ("staffspace"); + if (gh_pair_p (extra)) + { + ext[BIGGER] += s * gh_scm2double (gh_cdr (extra)); + ext[SMALLER] += s * gh_scm2double (gh_car (extra)); + } + + extra = get_elt_property (a == X_AXIS + ? "minimum-extent-X" + : "minimum-extent-Y"); + if (gh_pair_p (extra)) + { + ext.unite (Interval (s * gh_scm2double (gh_car (extra)), + s * gh_scm2double (gh_cdr (extra)))); + + } + + return ext; }