X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Flyric-extender.cc;h=0c7bb4ec448b3ec143f642b437a5c871ad522023;hb=22d7891f2b9ddbe39118ff24f26b3a6eb302178e;hp=a56bae3fa4689200886674cff0d48d643ffc4674;hpb=42c9f0b04886b8a8318cb23d7fe72a90abb41afe;p=lilypond.git diff --git a/lily/lyric-extender.cc b/lily/lyric-extender.cc index a56bae3fa4..0c7bb4ec44 100644 --- a/lily/lyric-extender.cc +++ b/lily/lyric-extender.cc @@ -2,7 +2,7 @@ lyric-extender.cc -- implement Lyric_extender source file of the GNU LilyPond music typesetter - (c) 1998--2000 Jan Nieuwenhuizen + (c) 1998--2002 Jan Nieuwenhuizen Han-Wen Nienhuys */ @@ -16,19 +16,19 @@ #include "lyric-extender.hh" -MAKE_SCHEME_CALLBACK(Lyric_extender,brew_molecule,1) +MAKE_SCHEME_CALLBACK (Lyric_extender,brew_molecule,1) SCM Lyric_extender::brew_molecule (SCM smob) { - Spanner *sp = dynamic_cast (unsmob_grob (smob)); + Spanner *sp = unsmob_spanner (smob); // ugh: refp Real leftext = sp->get_bound (LEFT)->extent (sp->get_bound (LEFT), X_AXIS).length (); - Real sl = sp->paper_l ()->get_var ("stafflinethickness"); + Real sl = sp->paper_l ()->get_var ("linethickness"); Real righttrim = 0.5; // default to half a space gap on the right - SCM righttrim_scm = sp->get_grob_property("right-trim-amount"); + SCM righttrim_scm = sp->get_grob_property ("right-trim-amount"); if (gh_number_p (righttrim_scm)) { righttrim = gh_scm2double (righttrim_scm); } @@ -40,21 +40,23 @@ Lyric_extender::brew_molecule (SCM smob) } Real w = sp->spanner_length () - leftext - righttrim; - Real h = sl * gh_scm2double (sp->get_grob_property ("height")); - Molecule mol (Lookup::filledbox ( Box (Interval (0,w), Interval (0,h)))); + Real h = sl * gh_scm2double (sp->get_grob_property ("height")); + Molecule mol (Lookup::filledbox (Box (Interval (0,w), Interval (0,h)))); mol.translate (Offset (leftext, 0)); - return mol.smobbed_copy(); + return mol.smobbed_copy (); } void -Lyric_extender::set_textitem (Direction d, Grob*s) +Lyric_extender::set_textitem (Spanner*sp, Direction d, Grob*s) { - elt_l_->set_bound (d, s); - elt_l_->add_dependency (s); + sp->set_bound (d, s); + sp->add_dependency (s); } -Lyric_extender::Lyric_extender (Spanner*s) -{ - elt_l_ = s; -} + + +ADD_INTERFACE (Lyric_extender,"lyric-extender-interface", + "The extender is a simple line at the baseline of the lyric +that helps show the length of a melissima (tied/slurred note).", + "word-space height right-trim-amount");