X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fbreak-align-engraver.cc;h=6cafa97a585b646cc85582cdd64913345f7497ff;hb=b2d2fdedaee06d957f69bafc0d9fba706b415a8c;hp=a403c4a60ecd03fa8c5a1e7140795c8e87b77f23;hpb=fc3e875d6bf06f0680e897faffdcab36ad975a03;p=lilypond.git diff --git a/lily/break-align-engraver.cc b/lily/break-align-engraver.cc index a403c4a60e..6cafa97a58 100644 --- a/lily/break-align-engraver.cc +++ b/lily/break-align-engraver.cc @@ -25,14 +25,9 @@ protected: void add_column (SCM); public: - VIRTUAL_COPY_CONS (Translator); - Break_align_engraver (); + TRANSLATOR_DECLARATIONS(Break_align_engraver); }; - - -ADD_THIS_TRANSLATOR (Break_align_engraver); - void Break_align_engraver::add_column (SCM smob) { @@ -51,20 +46,20 @@ void Break_align_engraver::stop_translation_timestep () { SCM order = get_property ("breakAlignOrder"); - for (; gh_pair_p (order); order = gh_cdr (order)) + for (; gh_pair_p (order); order = ly_cdr (order)) { - SCM p = scm_assoc (gh_car (order), column_alist_); + SCM p = scm_assoc (ly_car (order), column_alist_); if (gh_pair_p (p)) { - add_column (gh_cdr (p)); - column_alist_ = scm_assoc_remove_x (column_alist_, gh_car (order)); + add_column (ly_cdr (p)); + column_alist_ = scm_assoc_remove_x (column_alist_, ly_car (order)); } } - for (SCM p = column_alist_; gh_pair_p (p); p = gh_cdr (p)) + for (SCM p = column_alist_; gh_pair_p (p); p = ly_cdr (p)) { - SCM pair = gh_car (p); - add_column (gh_cdr (pair)); + SCM pair = ly_car (p); + add_column (ly_cdr (pair)); } @@ -87,9 +82,9 @@ Break_align_engraver::Break_align_engraver () void Break_align_engraver::acknowledge_grob (Grob_info inf) { - if (Item * item_l = dynamic_cast (inf.elem_l_)) + if (Item * item_l = dynamic_cast (inf.grob_l_)) { - if (item_l->empty_b (X_AXIS) || item_l->parent_l (X_AXIS)) + if (item_l->empty_b (X_AXIS) || item_l->get_parent (X_AXIS)) return; SCM bp=item_l->get_grob_property ("breakable"); @@ -136,7 +131,7 @@ Break_align_engraver::acknowledge_grob (Grob_info inf) if (s != SCM_BOOL_F) { - Grob *e = unsmob_grob (gh_cdr (s)); + Grob *e = unsmob_grob (ly_cdr (s)); group = dynamic_cast (e); } else @@ -155,3 +150,9 @@ Break_align_engraver::acknowledge_grob (Grob_info inf) Axis_group_interface::add_element (group, item_l); } } +ENTER_DESCRIPTION(Break_align_engraver, +/* descr */ "Align grobs with corresponding break-align-symbols into groups, and order the groups according to breakAlignOrder", +/* creats*/ "BreakAlignment BreakAlignGroup LeftEdge", +/* acks */ "grob-interface", // break-aligned-interface ? +/* reads */ "breakAlignOrder", +/* write */ "");