X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fpaper-column.cc;h=bcb480451507ccbbde9553d113e90bd1bb772df2;hb=926115ff42def8bc1ce767029e4f03c8072994ba;hp=da3807c31d6f4ddb33fb75edf69c24ec3baf8175;hpb=1d347c959f434118436b0f1c08fd0b7b37c98dac;p=lilypond.git diff --git a/lily/paper-column.cc b/lily/paper-column.cc index da3807c31d..bcb4804515 100644 --- a/lily/paper-column.cc +++ b/lily/paper-column.cc @@ -209,7 +209,8 @@ Paper_column::break_align_width (Grob *me, SCM align_syms) extract_grob_set (me, "elements", elts); for (vsize i = 0; i < elts.size (); i++) { - if (elts[i]->get_property ("break-align-symbol") == align_sym + if (scm_is_eq (align_sym, elts[i]->get_property ("break-align-symbol")) + // TODO SCM: there must be a simpler way to put this. && !elts[i]->extent (elts[i], X_AXIS).is_empty ()) { align = elts[i]; @@ -225,6 +226,22 @@ Paper_column::break_align_width (Grob *me, SCM align_syms) return align->extent (p, X_AXIS); } +LY_DEFINE (ly_paper_column__break_align_width, "ly:paper-column::break-align-width", + 2, 0, 0, (SCM col, SCM align_syms), + "Determine the extent along the X-axis of a grob used for" + " break-alignment organized by column @var{col}. The grob is" + " specified by @var{align-syms}, which contains either a" + " single @code{break-align-symbol} or a list of such" + " symbols.") +{ + LY_ASSERT_SMOB (Grob, col, 1); + SCM_ASSERT_TYPE (scm_is_symbol (align_syms) || ly_is_list (align_syms), + align_syms, SCM_ARG2, __FUNCTION__, "symbol or list"); + + Interval ext = Paper_column::break_align_width (unsmob (col), align_syms); + return ly_interval2scm (ext); +} + /* Loop through elements of a PaperColumn, find all grobs implementing specified interface and return their combined extent.