X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Faccidental-engraver.cc;h=ce9a670f044a462a268f172a27fcbbec87036cd6;hb=84ffce17397eb800a4744af7dcc8c4fff7dafe57;hp=1b9920673f354b4e973dc6001e190d523e030627;hpb=9dad21216e9f843ae1cfe9ffae916e6ee379e1a6;p=lilypond.git diff --git a/lily/accidental-engraver.cc b/lily/accidental-engraver.cc index 1b9920673f..ce9a670f04 100644 --- a/lily/accidental-engraver.cc +++ b/lily/accidental-engraver.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2006 Han-Wen Nienhuys + (c) 1997--2007 Han-Wen Nienhuys Modified 2001--2002 by Rune Zedeler */ @@ -17,6 +17,7 @@ #include "pitch.hh" #include "protected-scm.hh" #include "rhythmic-head.hh" +#include "separation-item.hh" #include "side-position-interface.hh" #include "stream-event.hh" #include "tie.hh" @@ -64,6 +65,7 @@ protected: void acknowledge_arpeggio (Grob_info); void acknowledge_rhythmic_head (Grob_info); void acknowledge_finger (Grob_info); + void acknowledge_note_column (Grob_info); void stop_translation_timestep (); void process_acknowledged (); @@ -81,6 +83,7 @@ public: vector accidentals_; vector ties_; + vector note_columns_; }; /* @@ -368,8 +371,6 @@ Accidental_engraver::create_accidental (Accidental_entry *entry, { Stream_event *note = entry->melodic_; Grob *support = entry->head_; - Pitch *pitch = unsmob_pitch (note->get_property ("pitch")); - bool as_suggestion = to_boolean (entry->origin_->get_property ("suggestAccidentals")); Grob *a = 0; if (as_suggestion) @@ -523,6 +524,10 @@ Accidental_engraver::stop_translation_timestep () } } + if (accidental_placement_) + for (vsize i = 0; i < note_columns_.size (); i++) + Separation_item::add_conditional_item (note_columns_[i], accidental_placement_); + accidental_placement_ = 0; accidentals_.clear (); left_objects_.clear (); @@ -560,6 +565,12 @@ Accidental_engraver::acknowledge_tie (Grob_info info) ties_.push_back (dynamic_cast (info.grob ())); } +void +Accidental_engraver::acknowledge_note_column (Grob_info info) +{ + note_columns_.push_back (info.grob ()); +} + void Accidental_engraver::acknowledge_arpeggio (Grob_info info) { @@ -584,26 +595,29 @@ ADD_ACKNOWLEDGER (Accidental_engraver, arpeggio); ADD_ACKNOWLEDGER (Accidental_engraver, finger); ADD_ACKNOWLEDGER (Accidental_engraver, rhythmic_head); ADD_ACKNOWLEDGER (Accidental_engraver, tie); +ADD_ACKNOWLEDGER (Accidental_engraver, note_column); ADD_TRANSLATOR (Accidental_engraver, - - "Make accidentals. " - "Catch note heads, ties and notices key-change events. " - "This engraver usually lives at Staff level, but " - "reads the settings for Accidental at @code{Voice} level, " - "so you can @code{\\override} them at @code{Voice}. ", - - /* grobs */ + /* doc */ + "Make accidentals." + " Catch note heads, ties and notices key-change events." + " This engraver usually lives at Staff level, but" + " reads the settings for Accidental at @code{Voice} level," + " so you can @code{\\override} them at @code{Voice}.", + + /* create */ "Accidental " - "AccidentalCautionary" - "AccidentalSuggestion", + "AccidentalCautionary " + "AccidentalSuggestion ", - /* props */ + /* read */ "autoAccidentals " "autoCautionaries " "internalBarNumber " "extraNatural " "harmonicAccidentals " "localKeySignature ", + + /* write */ "localKeySignature " );