]> git.donarmstrong.com Git - lilypond.git/commitdiff
* scm/define-grobs.scm: purge self-[XY]-offset varialbes, replace
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 2 Nov 2005 12:16:57 +0000 (12:16 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 2 Nov 2005 12:16:57 +0000 (12:16 +0000)
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

ChangeLog
lily/beam.cc
lily/grob.cc
scm/define-grobs.scm

index 1588f098f910db7a0b0bf2be82571a9f59fe75eb..dcde663b8c4bf62da6b2f7942f31edaa94979afc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2005-11-02  Han-Wen Nienhuys  <hanwen@xs4all.nl>
 
+       * 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.
 
index f779b2c87eeef607630adcab088ff57f7d886c93..0bc258a4855a0aeade5954e65ae70296fd05a64b 100644 (file)
@@ -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<Real> 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<Real> pos = ly_scm2interval (posns);
 
   if (visible_stem_count (me) <= 1)
-    return SCM_UNSPECIFIED;
+    return posns;
 
   
   SCM s = me->get_property ("damping");
index 7cbdac4a81ce1f618dc48785c473427cbf2a5d0b..9b86dea40fef61bcd4e66ee0b9890fe023ccc333 100644 (file)
@@ -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
index 8ae9054ac61194c1e9867f1ffbb664c1a21da081..0c5e765c6f6ef8a1c9fde21e0ef8d211b377ed62 100644 (file)
@@ -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)
 
        (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)
      . (
 
        (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)
        (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)
        (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
        (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
     (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)
      . (
        (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)
     (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)
      . (
        (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)
                                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)
 
        (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)
        (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)
        (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
     (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 ?
        (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