From: fred Date: Tue, 26 Mar 2002 23:57:15 +0000 (+0000) Subject: lilypond-1.3.96 X-Git-Tag: release/1.5.59~1242 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=7c0e7e7fb68537c0aae443d37f6b369e94cf8882;p=lilypond.git lilypond-1.3.96 --- diff --git a/lily/local-key-engraver.cc b/lily/local-key-engraver.cc index f8fd3516ff..89e1a6f7f4 100644 --- a/lily/local-key-engraver.cc +++ b/lily/local-key-engraver.cc @@ -16,7 +16,7 @@ #include "staff-symbol-referencer.hh" #include "side-position-interface.hh" #include "engraver.hh" - +#include "arpeggio.hh" /** Make accidentals. Catches note heads, ties and notices key-change @@ -44,6 +44,12 @@ public: // todo -> property SCM last_keysig_; + + /* + Urgh. Since the accidentals depend on lots of variables, we have to + store all information before we can really create the accidentals. + */ + Link_array arpeggios_; Link_array mel_l_arr_; Link_array support_l_arr_; @@ -105,8 +111,8 @@ Local_key_engraver::process_acknowledged () { key_item_p_ = new Item(get_property ("Accidentals")); Local_key_item::set_interface (key_item_p_); - Side_position::set_axis (key_item_p_, X_AXIS); - Side_position::set_direction (key_item_p_, LEFT); + + Staff_symbol_referencer::set_interface (key_item_p_); announce_element (key_item_p_, 0); @@ -155,7 +161,17 @@ Local_key_engraver::process_acknowledged () Side_position::add_support (grace_align_l_,key_item_p_); grace_align_l_ =0; } - + + if (key_item_p_) + { + /* + Hmm. Which one has to be on the left? + */ + for (int i=0; i < arpeggios_.size (); i++) + Side_position::add_support (arpeggios_[i], key_item_p_); + + arpeggios_.clear (); + } } void @@ -178,6 +194,7 @@ Local_key_engraver::do_pre_move_processing() grace_align_l_ = 0; mel_l_arr_.clear(); + arpeggios_.clear (); tied_l_arr_.clear(); support_l_arr_.clear(); forced_l_arr_.clear(); @@ -210,6 +227,11 @@ Local_key_engraver::acknowledge_element (Score_element_info info) { tied_l_arr_.push (Tie::head (info.elem_l_, RIGHT)); } + else if (Arpeggio::has_interface (info.elem_l_)) + { + arpeggios_.push (info.elem_l_); + } + } /*