From: Han-Wen Nienhuys Date: Sat, 30 Sep 2006 12:10:39 +0000 (+0000) Subject: * lily/dynamic-text-spanner.cc (print): Add a special case for X-Git-Tag: cvs/HEAD~47 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=d8423d48b957180dd6b236b3239d0b885e620db0;p=lilypond.git * lily/dynamic-text-spanner.cc (print): Add a special case for trill spanner right sides. * scm/define-grobs.scm (all-grob-descriptions): set padding to 0.1 * lily/align-interface.cc (get_extents_aligned_translates): add support for padding variable. --- diff --git a/ChangeLog b/ChangeLog index 375b306b0c..56e7a9c57e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2006-09-30 Han-Wen Nienhuys + * lily/dynamic-text-spanner.cc (print): Add a special case for + trill spanner right sides. + + * scm/define-grobs.scm (all-grob-descriptions): set padding to 0.1 + + * lily/align-interface.cc (get_extents_aligned_translates): add + support for padding variable. + * lily/break-align-interface.cc (self_align_callback): oops: use loop variable in guard. diff --git a/lily/align-interface.cc b/lily/align-interface.cc index 4f1e83d4fa..725555d550 100644 --- a/lily/align-interface.cc +++ b/lily/align-interface.cc @@ -206,7 +206,9 @@ Align_interface::get_extents_aligned_translates (Grob *me, ? scm_cdr (extra_space_handle) : SCM_EOL, extra_space); - + + Real padding = robust_scm2double (me->get_property ("padding"), + 0.0); vector translates; for (vsize j = 0; j < elems.size (); j++) { @@ -221,17 +223,20 @@ Align_interface::get_extents_aligned_translates (Grob *me, if (j) dy = min (max (dy, threshold[SMALLER]), threshold[BIGGER]); - where += stacking_dir * (dy + extra_space / elems.size ()); + + where += stacking_dir * (dy + padding + extra_space / elems.size ()); total.unite (dims[j] + where); translates.push_back (where); } - SCM offsets_handle = scm_assq (ly_symbol2scm ("alignment-offsets"), line_break_details); + SCM offsets_handle = scm_assq (ly_symbol2scm ("alignment-offsets"), + line_break_details); if (scm_is_pair (offsets_handle)) { vsize i = 0; - for (SCM s = scm_cdr (offsets_handle); scm_is_pair (s) && i < translates.size (); s = scm_cdr (s), i++) + for (SCM s = scm_cdr (offsets_handle); + scm_is_pair (s) && i < translates.size (); s = scm_cdr (s), i++) { if (scm_is_number (scm_car (s))) translates[i] = scm_to_double (scm_car (s)); @@ -375,12 +380,15 @@ ADD_INTERFACE (Align_interface, /* properties */ + "align-dir " + "axes" + "elements " "forced-distance " + "padding " + "positioning-done " "stacking-dir " - "align-dir " "threshold " - "positioning-done " - "elements axes"); + ); struct Foobar { diff --git a/lily/dynamic-text-spanner.cc b/lily/dynamic-text-spanner.cc index a5d76e4bca..1ebb70fe8c 100644 --- a/lily/dynamic-text-spanner.cc +++ b/lily/dynamic-text-spanner.cc @@ -79,6 +79,15 @@ Dynamic_text_spanner::print (SCM smob) encl = -d; } + /* + ugh - a special case. + */ + if (d == RIGHT && me->get_property ("style") == ly_symbol2scm ("trill")) + { + pad = 2.0; + encl = LEFT; + } + Interval ext = b->extent (common, X_AXIS); span_points[d] = -d * pad + robust_relative_extent (b, common, X_AXIS) diff --git a/lily/staff-collecting-engraver.cc b/lily/staff-collecting-engraver.cc index 95e9b1c305..a7ee6d181a 100644 --- a/lily/staff-collecting-engraver.cc +++ b/lily/staff-collecting-engraver.cc @@ -42,6 +42,7 @@ Staff_collecting_engraver::acknowledge_end_staff_symbol (Grob_info gi) } #include "translator.icc" + ADD_ACKNOWLEDGER (Staff_collecting_engraver, staff_symbol); ADD_END_ACKNOWLEDGER (Staff_collecting_engraver, staff_symbol); diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 94218f824a..d0e0f341bf 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -1877,6 +1877,7 @@ (Y-extent . ,ly:axis-group-interface::height) (X-extent . ,ly:axis-group-interface::width) (stacking-dir . -1) + (padding . 0.1) (meta . ((class . Spanner) (interfaces . (align-interface axis-group-interface))))))