X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Fligature-bracket-engraver.cc;h=85cd473ecd21ee4e0ffbb5bdd7a281bd9c687700;hb=a406b8c16072b4a1e44d70d7a05757bb8e9cf8f3;hp=9d00279b1c00d8441f4edf509c5e403477195747;hpb=83ed05cef3bfcbd69f4148e8ee0669ca0664e214;p=lilypond.git diff --git a/lily/ligature-bracket-engraver.cc b/lily/ligature-bracket-engraver.cc index 9d00279b1c..85cd473ecd 100644 --- a/lily/ligature-bracket-engraver.cc +++ b/lily/ligature-bracket-engraver.cc @@ -3,13 +3,18 @@ source file of the GNU LilyPond music typesetter - (c) 2002--2005 Juergen Reuter + (c) 2002--2007 Juergen Reuter */ #include "ligature-engraver.hh" #include "note-column.hh" #include "tuplet-bracket.hh" #include "spanner.hh" +#include "stream-event.hh" +#include "spanner.hh" +#include "item.hh" + +#include "translator.icc" /* * This engraver marks ligatures of any kind by just printing a @@ -21,12 +26,22 @@ class Ligature_bracket_engraver : public Ligature_engraver { protected: virtual Spanner *create_ligature_spanner (); - DECLARE_ACKNOWLEDGER(rest); - DECLARE_ACKNOWLEDGER(note_column); + virtual void typeset_ligature (Spanner *ligature, + vector primitives); + DECLARE_ACKNOWLEDGER (rest); + DECLARE_ACKNOWLEDGER (note_column); + DECLARE_TRANSLATOR_LISTENER (ligature); public: TRANSLATOR_DECLARATIONS (Ligature_bracket_engraver); }; +IMPLEMENT_TRANSLATOR_LISTENER (Ligature_bracket_engraver, ligature); +void +Ligature_bracket_engraver::listen_ligature (Stream_event *ev) +{ + Ligature_engraver::listen_ligature (ev); +} + Ligature_bracket_engraver::Ligature_bracket_engraver () { } @@ -37,6 +52,12 @@ Ligature_bracket_engraver::create_ligature_spanner () return make_spanner ("LigatureBracket", SCM_EOL); } +void +Ligature_bracket_engraver::typeset_ligature (Spanner *, vector) +{ + // no real ligature to typeset; the LigatureBracket just does it +} + void Ligature_bracket_engraver::acknowledge_note_column (Grob_info info) { @@ -44,6 +65,10 @@ Ligature_bracket_engraver::acknowledge_note_column (Grob_info info) { Tuplet_bracket::add_column (current_ligature (), dynamic_cast (info.grob ())); + + // avoid "junking empty ligature" message by acknowledging dummy + // note head + Ligature_engraver::acknowledge_note_head (Grob_info ()); } } @@ -54,14 +79,11 @@ Ligature_bracket_engraver::acknowledge_rest (Grob_info info) Ligature_engraver::acknowledge_rest (info); } -#include "translator.icc" +ADD_ACKNOWLEDGER (Ligature_bracket_engraver, rest); +ADD_ACKNOWLEDGER (Ligature_bracket_engraver, note_column); -ADD_ACKNOWLEDGER(Ligature_bracket_engraver, rest); -ADD_ACKNOWLEDGER(Ligature_bracket_engraver, note_column); ADD_TRANSLATOR (Ligature_bracket_engraver, - /* descr */ "Handles Ligature_events by engraving Ligature brackets.", - /* creats*/ "TupletBracket", - /* accepts */ "ligature-event", - /* acks */ "", - /* reads */ "", + /* doc */ "Handles Ligature_events by engraving Ligature brackets.", + /* create */ "TupletBracket", + /* read */ "", /* write */ "");