From: hanwen Date: Wed, 2 Nov 2005 12:16:57 +0000 (+0000) Subject: * scm/define-grobs.scm: purge self-[XY]-offset varialbes, replace X-Git-Tag: release/2.7.16^2~20 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=23be3d816b783608597ce751c6cc4fafa475e775;p=lilypond.git * scm/define-grobs.scm: purge self-[XY]-offset varialbes, replace with simple-closure. * lily/self-aligment-interface.cc (set_align_self): new function (set_center_parent): new function. * lily/side-position-interface.cc (set_axis): new function. * lily/new-fingering-engraver.cc (position_scripts): use drul for generic code. * scm/define-grob-properties.scm (all-user-grob-properties): remove [XY]-offset-callbacks add [YX]-offset --- diff --git a/ChangeLog b/ChangeLog index 1588f098f9..dcde663b8c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2005-11-02 Han-Wen Nienhuys + * scm/define-grobs.scm: purge self-[XY]-offset varialbes, replace + with simple-closure. + * lily/self-aligment-interface.cc (set_align_self): new function (set_center_parent): new function. diff --git a/lily/beam.cc b/lily/beam.cc index f779b2c87e..0bc258a485 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -779,8 +779,10 @@ Beam::calc_least_squares_positions (SCM smob, SCM posns) Grob *me = unsmob_grob (smob); int count = visible_stem_count (me); - Interval pos (0, 0); - + Interval pos (0,0); + if (count < 1) + return ly_interval2scm (pos); + Array x_posns; extract_grob_set (me, "stems", stems); Grob *commonx = common_refpoint_of_array (stems, me, X_AXIS); @@ -984,7 +986,7 @@ Beam::slope_damping (SCM smob, SCM posns) Drul_array pos = ly_scm2interval (posns); if (visible_stem_count (me) <= 1) - return SCM_UNSPECIFIED; + return posns; SCM s = me->get_property ("damping"); diff --git a/lily/grob.cc b/lily/grob.cc index 7cbdac4a81..9b86dea40f 100644 --- a/lily/grob.cc +++ b/lily/grob.cc @@ -349,21 +349,12 @@ Grob::get_offset (Axis a) const Grob *me = (Grob *) this; + SCM sym = axis_offset_symbol (a); me->dim_cache_[a].offset_ = new Real (0.0); - Real off = robust_scm2double (internal_get_property (axis_offset_symbol (a)), 0.0); + *me->dim_cache_[a].offset_ += robust_scm2double (internal_get_property (sym), 0.0); - SCM self_off_sym - = (a == X_AXIS) - ? ly_symbol2scm ("self-X-offset") - : ly_symbol2scm ("self-Y-offset"); - - off += robust_scm2double (internal_get_property (self_off_sym), 0.0); - - *me->dim_cache_[a].offset_ += off; - - me->del_property (self_off_sym); - me->del_property (axis_offset_symbol (a)); - return off; + me->del_property (sym); + return *me->dim_cache_[a].offset_; } void diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 8ae9054ac6..0c5e765c6f 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -33,8 +33,8 @@ (AccidentalSuggestion . ( (stencil . ,Accidental_interface::print) - (X-offset . ,Self_alignment_interface::centered_on_x_parent) - (self-X-offset . Self_alignment_interface::x_aligned_on_self) + (X-offset . ,(ly:make-simple-closure `(,+ ,(ly:make-simple-closure (list Self_alignment_interface::centered_on_x_parent)) + ,(ly:make-simple-closure (list Self_alignment_interface::x_aligned_on_self))))) (self-alignment-X . ,CENTER) (cautionary . #t) (cautionary-style . smaller) @@ -477,7 +477,7 @@ (no-spacing-rods . #t) (Y-offset . ,Side_position_interface::y_aligned_side) - (self-X-offset . ,Self_alignment_interface::x_aligned_on_self) + (X-offset . ,Self_alignment_interface::x_aligned_on_self) (direction . 1) (padding . 0.5) (staff-padding . 0.5) @@ -557,9 +557,8 @@ . ( (stencil . ,Text_interface::print) - - (self-X-offset . ,Self_alignment_interface::x_aligned_on_self) - (X-offset . ,Self_alignment_interface::centered_on_y_parent) + (X-offset . ,(ly:make-simple-closure `(,+ ,(ly:make-simple-closure (list Self_alignment_interface::centered_on_y_parent)) + ,(ly:make-simple-closure (list Self_alignment_interface::x_aligned_on_self))))) (Y-offset . ,Side_position_interface::y_aligned_side) (font-encoding . fetaNumber) (self-alignment-X . 0) @@ -602,9 +601,9 @@ (stencil . ,Text_interface::print) (direction . ,Script_interface::calc_direction) - (self-X-offset . ,Self_alignment_interface::x_aligned_on_self) + (X-offset . ,Self_alignment_interface::x_aligned_on_self) (self-alignment-X . 0) - (self-Y-offset . ,Self_alignment_interface::y_aligned_on_self) + (Y-offset . ,Self_alignment_interface::y_aligned_on_self) (self-alignment-Y . 0) (font-series . bold) (font-encoding . fetaDynamic) @@ -697,9 +696,8 @@ (stencil . ,Grid_line_interface::print) (self-alignment-X . ,CENTER) - (self-X-offset . ,Self_alignment_interface::x_aligned_on_self) - (X-offset . ,Self_alignment_interface::centered_on_x_parent) - + (X-offset . (ly:make-simple-closure `(,+ ,(ly:make-simple-closure (list Self_alignment_interface::centered_on_x_parent)) + ,(ly:make-simple-closure (list Self_alignment_interface::x_aligned_on_self))))) (layer . 0) (meta . ((class . Item) (interfaces . (self-alignment-interface @@ -718,7 +716,7 @@ (minimum-length . 2.0) (bound-padding . 1.0) (self-alignment-Y . 0) - (self-Y-offset . ,Self_alignment_interface::y_aligned_on_self) + (Y-offset . ,Self_alignment_interface::y_aligned_on_self) (meta . ((class . Spanner) (interfaces . (hairpin-interface line-interface @@ -745,8 +743,9 @@ (InstrumentName . ( (breakable . #t) - (self-Y-offset . ,Self_alignment_interface::y_aligned_on_self) - (Y-offset . ,Side_position_interface::y_aligned_on_support_refpoints) + (Y-offset . ,(ly:make-simple-closure `(,+ ,(ly:make-simple-closure (list Self_alignment_interface::y_aligned_on_self)) + ,(ly:make-simple-closure (list Side_position_interface::y_aligned_on_support_refpoints))))) + ;; This direction is for aligned_on_support_refpoints ;; (?) --hwn (direction . 0) @@ -997,8 +996,8 @@ . ( (springs-and-rods . ,Multi_measure_rest::set_spacing_rods) (stencil . ,Text_interface::print) - (self-X-offset . ,Self_alignment_interface::y_aligned_on_self) - (X-offset . ,Self_alignment_interface::centered_on_y_parent) + (self-X-offset . ,(ly:make-simple-closure `(,+ ,(ly:make-simple-closure (list Self_alignment_interface::y_aligned_on_self)) + ,(ly:make-simple-closure (list Self_alignment_interface::centered_on_y_parent))))) (Y-offset . ,Side_position_interface::y_aligned_side) (self-alignment-X . 0) (direction . 1) @@ -1017,8 +1016,8 @@ (MultiMeasureRestText . ( (stencil . ,Text_interface::print) - (X-offset . ,Self_alignment_interface::centered_on_y_parent) - (self-X-offset . ,Self_alignment_interface::x_aligned_on_self) + (X-offset . ,(ly:make-simple-closure `(,+ ,(ly:make-simple-closure (list Self_alignment_interface::centered_on_y_parent)) + ,(ly:make-simple-closure (list Self_alignment_interface::x_aligned_on_self))))) (Y-offset . ,Side_position_interface::y_aligned_side) (self-alignment-X . 0) @@ -1096,8 +1095,9 @@ . ( (self-alignment-X . 0) (break-visibility . ,begin-of-line-visible) - (X-offset . ,Self_alignment_interface::centered_on_x_parent) - (self-X-offset . ,Self_alignment_interface::x_aligned_on_self) + (self-X-offset . ,(ly:make-simple-closure `(,+ ,(ly:make-simple-closure (list Self_alignment_interface::x_aligned_on_self)) + ,(ly:make-simple-closure (list Self_alignment_interface::centered_on_x_parent))))) + (Y-offset . ,Side_position_interface::y_aligned_side) (stencil . ,Text_interface::print) @@ -1203,11 +1203,9 @@ percent-repeat-interface)))))) (PercentRepeatCounter . ( - (stencil . ,Text_interface::print) - - (self-X-offset . ,Self_alignment_interface::x_aligned_on_self) - (X-offset . ,Self_alignment_interface::centered_on_y_parent) + (X-offset . `(ly:make-simple-closure `(,+ ,(ly:make-simple-closure (list Self_alignment_interface::centered_on_y_parent)) + ,(ly:make-simple-closure (list Self_alignment_interface::x_aligned_on_self))))) (Y-offset . ,Side_position_interface::y_aligned_side) (self-alignment-X . 0) (direction . 1) @@ -1245,7 +1243,7 @@ (stencil . ,Text_interface::print) - (self-X-offset . ,Self_alignment_interface::x_aligned_on_self) + (X-offset . ,Self_alignment_interface::x_aligned_on_self) (Y-offset . ,Side_position_interface::y_aligned_side) (after-line-breaking . ,shift-right-at-line-begin) @@ -1449,7 +1447,7 @@ (stencil . ,Text_interface::print) (direction . 1) - (self-X-offset . ,Self_alignment_interface::x_aligned_on_self) + (X-offset . ,Self_alignment_interface::x_aligned_on_self) (no-spacing-rods . #t) (padding . 0.0) ;; padding relative to SostenutoPedalLineSpanner (font-shape . italic) @@ -1557,7 +1555,7 @@ (self-alignment-X . 0) (direction . 1) (padding . 0.0) ;; padding relative to SustainPedalLineSpanner - (self-X-offset . ,Self_alignment_interface::x_aligned_on_self) + (X-offset . ,Self_alignment_interface::x_aligned_on_self) (meta . ((class . Item) (interfaces . (piano-pedal-interface text-spanner-interface @@ -1639,7 +1637,7 @@ (TextScript . ( (no-spacing-rods . #t) - (self-X-offset . ,Self_alignment_interface::x_aligned_on_self) + (X-offset . ,Self_alignment_interface::x_aligned_on_self) (direction . -1) ;; sync with Fingering ? @@ -1792,7 +1790,7 @@ (self-alignment-X . 0) (direction . 1) (padding . 0.0) ;; padding relative to UnaCordaPedalLineSpanner - (self-X-offset . ,Self_alignment_interface::x_aligned_on_self) + (X-offset . ,Self_alignment_interface::x_aligned_on_self) (meta . ((class . Item) (interfaces . (text-interface self-alignment-interface