X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Falign-note-column-engraver.cc;h=c034b0df9cd2411f1c97ab1d98fafe1d3bcdff2b;hb=c52973e438ce3490d688860bb71849a7b3c26fef;hp=74967e7b66807a8f0ff7144245bf0b82c1d933d7;hpb=685452c8675e89a84692420fb9891756d318e771;p=lilypond.git diff --git a/lily/align-note-column-engraver.cc b/lily/align-note-column-engraver.cc index 74967e7b66..c034b0df9c 100644 --- a/lily/align-note-column-engraver.cc +++ b/lily/align-note-column-engraver.cc @@ -3,18 +3,21 @@ source file of the GNU LilyPond music typesetter - (c) 1999 Han-Wen Nienhuys + (c) 1999--2000 Han-Wen Nienhuys */ #include "engraver.hh" #include "grace-align-item.hh" +#include "align-interface.hh" #include "note-column.hh" #include "local-key-item.hh" #include "warn.hh" +#include "directional-element-interface.hh" +#include "side-position-interface.hh" /** - catch notes, and put them in a row. + Catch notes, and put them in a row. Used for aligning grace notes. */ class Align_note_column_engraver: public Engraver { @@ -42,7 +45,10 @@ Align_note_column_engraver::Align_note_column_engraver() void Align_note_column_engraver::do_creation_processing () { - align_item_p_ = new Grace_align_item; + align_item_p_ = new Grace_align_item (SCM_EOL); + Side_position_interface (align_item_p_).set_axis (X_AXIS); + Side_position_interface (align_item_p_).set_direction (LEFT); + // needed for setting font size. announce_element (Score_element_info (align_item_p_, 0)); } @@ -50,10 +56,11 @@ Align_note_column_engraver::do_creation_processing () void Align_note_column_engraver::do_removal_processing () { - SCM al = get_property ("graceAlignPosition", 0); + SCM al = get_property ("graceAlignPosition"); if (isdir_b (al)) { - align_item_p_->notehead_align_dir_ = to_dir (al); + Direction d = to_dir (al); + directional_element (align_item_p_).set (d); } typeset_element (align_item_p_); @@ -85,7 +92,7 @@ Align_note_column_engraver::process_acknowledged () B. it has no pscore_l_ field. */ - SCM grsp = get_property ("graceAccidentalSpace", 0); + SCM grsp = get_property ("graceAccidentalSpace"); if (gh_number_p(grsp)) { /* @@ -93,13 +100,13 @@ Align_note_column_engraver::process_acknowledged () */ Real extra_space = gh_scm2double(grsp); SCM e = gh_cons (gh_double2scm (-extra_space), gh_double2scm (0.0)); - now_column_l_->set_elt_property (extra_space_scm_sym, e); + now_column_l_->set_elt_property ("extra-space", e); } } if (now_column_l_) { - align_item_p_->add_element (now_column_l_); + Align_interface (align_item_p_).add_element (now_column_l_); now_column_l_ =0; } } @@ -112,3 +119,4 @@ Align_note_column_engraver::do_post_move_processing () } ADD_THIS_TRANSLATOR(Align_note_column_engraver); +