X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Frhythmic-column-engraver.cc;h=914a2c2ecfdefa1577e9f4757a5c861e07d5671a;hb=3a0e9efb7f067e5b334ba0596b95e15d96d7cc49;hp=5e03c9b3fb9ac94fe7cb2ba934e2fe3495df4585;hpb=86f02d911398a55f8b6bfa8e1d843b96856c031b;p=lilypond.git diff --git a/lily/rhythmic-column-engraver.cc b/lily/rhythmic-column-engraver.cc index 5e03c9b3fb..914a2c2ecf 100644 --- a/lily/rhythmic-column-engraver.cc +++ b/lily/rhythmic-column-engraver.cc @@ -6,6 +6,7 @@ (c) 1997--1999 Han-Wen Nienhuys */ +#include "dimension-cache.hh" #include "slur.hh" #include "rhythmic-column-engraver.hh" #include "note-head.hh" @@ -35,7 +36,7 @@ Rhythmic_column_engraver::process_acknowledged () for (int i=0; i < rhead_l_arr_.size (); i++) { - if (!rhead_l_arr_[i]->dim_cache_[X_AXIS]->parent_l_) + if (!rhead_l_arr_[i]->parent_l(X_AXIS)) ncol_p_->add_head (rhead_l_arr_[i]); } rhead_l_arr_.set_size (0); @@ -45,20 +46,20 @@ Rhythmic_column_engraver::process_acknowledged () if (ncol_p_) { if (dotcol_l_ - && !dotcol_l_->dim_cache_[X_AXIS]->parent_l_) + && !dotcol_l_->parent_l(X_AXIS)) { ncol_p_->set_dotcol (dotcol_l_); } if (stem_l_ - && !stem_l_->dim_cache_[X_AXIS]->parent_l_) + && !stem_l_->parent_l(X_AXIS)) { ncol_p_->set_stem (stem_l_); stem_l_ = 0; } - - bool wegrace = get_property ("weAreGraceContext",0).to_bool (); + SCM wg = get_property ("weAreGraceContext",0); + bool wegrace = gh_boolean_p (wg) && gh_scm2bool (wg); if (!wegrace) for (int i=0; i < grace_slur_endings_.size(); i++) @@ -70,7 +71,9 @@ Rhythmic_column_engraver::process_acknowledged () void Rhythmic_column_engraver::acknowledge_element (Score_element_info i) { - if ((get_property ("weAreGraceContext",0).to_bool () != + SCM wg = get_property ("weAreGraceContext",0); + bool wegrace = gh_boolean_p (wg) && gh_scm2bool (wg); + if ((wegrace != (i.elem_l_->get_elt_property (grace_scm_sym) != SCM_BOOL_F)) && !dynamic_cast (i.elem_l_)) return ; @@ -104,12 +107,16 @@ Rhythmic_column_engraver::do_pre_move_processing() { if (ncol_p_) { - Scalar sh = get_property ("horizontalNoteShift", 0); - // egcs - if (sh.to_bool () && sh.isnum_b ()) + SCM sh = get_property ("horizontalNoteShift", 0); + if (SCM_NUMBERP(sh)) + { + ncol_p_->set_elt_property (horizontal_shift_scm_sym, sh); + } + + sh = get_property ("forceHorizontalShift" ,0); + if (SCM_NUMBERP(sh)) { - ncol_p_->set_elt_property (horizontal_shift_scm_sym, - gh_int2scm (int (sh))); + ncol_p_->set_elt_property (force_hshift_scm_sym, sh); } typeset_element (ncol_p_);