X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ftuplet-engraver.cc;h=4348044fbe002c5cc15f6a69802f4839766e536d;hb=22066a4f0781980adfa73eef3d7ef3564f69bcb1;hp=c21794436cd3a21147bbc4eda6e2307980626729;hpb=4a401ca1c60f428daa242dbdd102fdb3f327ebfb;p=lilypond.git diff --git a/lily/tuplet-engraver.cc b/lily/tuplet-engraver.cc index c21794436c..4348044fbe 100644 --- a/lily/tuplet-engraver.cc +++ b/lily/tuplet-engraver.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1998--2011 Han-Wen Nienhuys + Copyright (C) 1998--2012 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -64,6 +64,9 @@ protected: vector last_tuplets_; DECLARE_ACKNOWLEDGER (note_column); + DECLARE_ACKNOWLEDGER (script); + DECLARE_ACKNOWLEDGER (finger); + DECLARE_ACKNOWLEDGER (string_number); DECLARE_TRANSLATOR_LISTENER (tuplet_span); virtual void finalize (); void start_translation_timestep (); @@ -207,6 +210,40 @@ Tuplet_engraver::acknowledge_note_column (Grob_info inf) } } +void +Tuplet_engraver::acknowledge_script (Grob_info inf) +{ + for (vsize j = 0; j < tuplets_.size (); j++) + if (tuplets_[j].bracket_) + { + Item *i = dynamic_cast (inf.grob ()); + if (!i->internal_has_interface (ly_symbol2scm ("dynamic-interface"))) + Tuplet_bracket::add_script (tuplets_[j].bracket_, i); + } +} + +void +Tuplet_engraver::acknowledge_finger (Grob_info inf) +{ + for (vsize j = 0; j < tuplets_.size (); j++) + if (tuplets_[j].bracket_) + { + Item *i = dynamic_cast (inf.grob ()); + Tuplet_bracket::add_script (tuplets_[j].bracket_, i); + } +} + +void +Tuplet_engraver::acknowledge_string_number (Grob_info inf) +{ + for (vsize j = 0; j < tuplets_.size (); j++) + if (tuplets_[j].bracket_) + { + Item *i = dynamic_cast (inf.grob ()); + Tuplet_bracket::add_script (tuplets_[j].bracket_, i); + } +} + void Tuplet_engraver::start_translation_timestep () { @@ -233,6 +270,9 @@ Tuplet_engraver::Tuplet_engraver () } ADD_ACKNOWLEDGER (Tuplet_engraver, note_column); +ADD_ACKNOWLEDGER (Tuplet_engraver, script); +ADD_ACKNOWLEDGER (Tuplet_engraver, finger); +ADD_ACKNOWLEDGER (Tuplet_engraver, string_number); ADD_TRANSLATOR (Tuplet_engraver, /* doc */ "Catch tuplet events and generate appropriate bracket.",