]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/coherent-ligature-engraver.cc
* lily/include/translator.icc: new file.
[lilypond.git] / lily / coherent-ligature-engraver.cc
index 0ed1405afa9ba09b579b5dc01902c90b8c48f66c..160ca72963237956987a1d7cc973c12a9b9c6b97 100644 (file)
@@ -12,6 +12,8 @@
 #include "staff-symbol-referencer.hh"
 #include "spanner.hh"
 #include "paper-column.hh"
+#include "pitch.hh"
+#include "pointer-group-interface.hh"
 
 /*
  * This abstract class serves as common superclass for all ligature
@@ -94,10 +96,10 @@ if (incr_scm != SCM_EOL) /* (Paper_column::is_musical (l)) */
        distance = 0.1;
       }
     me->warning (_f ("distance=%f", distance));//debug
-    Real strength = 1.0;
-    Spaceable_grob::add_spring (lc, rc, distance, strength);
+    Real inverse_strength = 1.0;
+    Spaceable_grob::add_spring (lc, rc, distance, inverse_strength);
     if (Item *rb = r->find_prebroken_piece (LEFT))
-      Spaceable_grob::add_spring (lc, rb, distance, strength);
+      Spaceable_grob::add_spring (lc, rb, distance, inverse_strength);
 
     continue;
   }
@@ -126,11 +128,12 @@ Coherent_ligature_engraver::get_set_column (Item *item, Paper_column *column)
       // Change column not only for targeted item (NoteColumn), but
       // also for all associated grobs (NoteSpacing, SeparationItem).
       Grob *sl = Staff_symbol_referencer::get_staff_symbol (item);
-      for (SCM tail = parent->get_property ("elements");
-          scm_is_pair (tail);
-          tail = scm_cdr (tail))
+
+      extract_item_set (parent, "elements", elements);
+      
+      for (int i = elements.size (); i--;)
        {
-         Item *sibling = unsmob_item (scm_car (tail));
+         Item *sibling = elements[i];
          if ((sibling)
              && (Staff_symbol_referencer::get_staff_symbol (sibling) == sl))
            {
@@ -214,6 +217,8 @@ Coherent_ligature_engraver::typeset_ligature (Spanner *ligature,
   collect_accidentals (ligature, primitives);
 }
 
+#include "translator.icc"
+
 ADD_TRANSLATOR (Coherent_ligature_engraver,
                /* descr */ "This is an abstract class.  Subclasses such as Gregorian_ligature_engraver handle ligatures by glueing special ligature heads together.",
                /* creats*/ "",