X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Fslur.cc;h=7d2ca978c7afb1d46064136dcad85260eeb2e551;hb=366316fd6be846c2050be6b1b3955b261026187e;hp=7e2cb1d1b02b4b82859f813eb043b3afbe6669a1;hpb=9def640bf6a0a5feb863c75c8a31e138fbe4043b;p=lilypond.git diff --git a/lily/slur.cc b/lily/slur.cc index 7e2cb1d1b0..7d2ca978c7 100644 --- a/lily/slur.cc +++ b/lily/slur.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1996--2012 Han-Wen Nienhuys + Copyright (C) 1996--2014 Han-Wen Nienhuys Jan Nieuwenhuizen LilyPond is free software: you can redistribute it and/or modify @@ -31,8 +31,8 @@ #include "main.hh" // DEBUG_SLUR_SCORING #include "note-column.hh" #include "output-def.hh" -#include "spanner.hh" #include "skyline-pair.hh" +#include "spanner.hh" #include "staff-symbol-referencer.hh" #include "stem.hh" #include "text-interface.hh" @@ -40,6 +40,7 @@ #include "warn.hh" #include "slur-scoring.hh" #include "separation-item.hh" +#include "unpure-pure-container.hh" #include "international.hh" MAKE_SCHEME_CALLBACK (Slur, calc_direction, 1) @@ -364,7 +365,7 @@ Slur::outside_slur_callback (SCM grob, SCM offset_scm) return scm_from_double (offset + avoidance_offset); } -MAKE_SCHEME_CALLBACK_WITH_OPTARGS (Slur, vertical_skylines, 1, 0, ""); +MAKE_SCHEME_CALLBACK (Slur, vertical_skylines, 1); SCM Slur::vertical_skylines (SCM smob) { @@ -372,7 +373,7 @@ Slur::vertical_skylines (SCM smob) vector boxes; if (!me) - return Skyline_pair (boxes, 0.0, X_AXIS).smobbed_copy (); + return Skyline_pair (boxes, X_AXIS).smobbed_copy (); Bezier curve = Slur::get_curve (me); vsize box_count = robust_scm2vsize (me->get_property ("skyline-quantizing"), 10); @@ -384,7 +385,7 @@ Slur::vertical_skylines (SCM smob) boxes.push_back (b); } - return Skyline_pair (boxes, 0.0, X_AXIS).smobbed_copy (); + return Skyline_pair (boxes, X_AXIS).smobbed_copy (); } /* @@ -421,13 +422,16 @@ Slur::auxiliary_acknowledge_extra_object (Grob_info const &info, { if (slur) { - chain_offset_callback (e, outside_slur_callback_proc, Y_AXIS); + chain_offset_callback (e, + ly_make_unpure_pure_container (outside_slur_callback_proc, + pure_outside_slur_callback_proc), + Y_AXIS); chain_callback (e, outside_slur_cross_staff_proc, ly_symbol2scm ("cross-staff")); e->set_object ("slur", slur->self_scm ()); } } else if (avoid != ly_symbol2scm ("ignore")) - e->warning (_f ("Ignoring grob for slur: %s. avoid-slur not set?", + e->warning (_f ("Ignoring grob for slur: %s. avoid-slur not set?", e->name ().c_str ())); } @@ -538,6 +542,12 @@ ADD_INTERFACE (Slur, "@item head-slur-distance-max-ratio\n" "The maximum value for the ratio of distance between a" " note head and slur.\n" + "@item gap-to-staffline-inside\n" + "Minimum gap inside the curve of the slur" + " where the slur is parallel to a staffline.\n" + "@item gap-to-staffline-outside\n" + "Minimum gap outside the curve of the slur" + " where the slur is parallel to a staffline.\n" "@item free-slur-distance\n" "The amount of vertical free space that must exist" " between adjacent slurs. This subproperty only works" @@ -562,10 +572,8 @@ ADD_INTERFACE (Slur, "inspect-index " "line-thickness " "note-columns " - "skyline-quantizing " "positions " "ratio " "thickness " - "vertical-skylines " );