]> git.donarmstrong.com Git - lilypond.git/commitdiff
* lily/break-align-interface.cc (do_alignment): translate last
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 30 Aug 2002 22:40:57 +0000 (22:40 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 30 Aug 2002 22:40:57 +0000 (22:40 +0000)
break-align-group if it is invisible/empty.

* scm/grob-description.scm (all-grob-descriptions): LeftEdge is
not a BreakAlignGroup. Do not use
Break_align_interface::alignment_callback

ChangeLog
lily/break-align-interface.cc
lily/gdb.cc
scm/grob-description.scm

index 114f97bceaf4621c1bbe44160813a28511b0d555..d33ae4dd69f9fc78bca44d507977f7307a52ee47 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2002-08-31  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
+
+       * lily/break-align-interface.cc (do_alignment): translate last
+       break-align-group if it is invisible/empty.
+
+       * scm/grob-description.scm (all-grob-descriptions): LeftEdge is
+       not a BreakAlignGroup. Do not use
+       Break_align_interface::alignment_callback
+
+
 2002-08-30  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
 
        * scripts/lilypond-book.py (LatexPaper.find_latex_dims): give more
index c29c74b2407c6b12dfba9ecb06ddc03699f45d8e..9bf4e4503a22ce4e6eb0f0fd818bf2ee5a27020b 100644 (file)
@@ -71,7 +71,7 @@ void
 Break_align_interface::do_alignment (Grob *me)
 {
   Item * item = dynamic_cast<Item*> (me);
-
+  int rank = Paper_column::get_rank (item->get_column ());
   Link_array<Grob> elems
     = Pointer_group_interface__extract_grobs (me, (Grob*)0,
                                                 "elements");
@@ -95,14 +95,13 @@ Break_align_interface::do_alignment (Grob *me)
 
 
   int edge_idx = -1;
-  while (idx < elems.size())
+  while (idx < elems.size() - 1)
     {
       int next_idx = idx+1;
-      while ( next_idx < elems.size() && extents[next_idx].empty_b())
+      while (next_idx < elems.size() &&
+            extents[next_idx].empty_b()
+            && next_idx != elems.size() -1 )
        next_idx++;
-
-      if (next_idx == elems.size())
-       break;
       
       Grob *l = elems[idx];
       Grob *r = elems[next_idx];
@@ -133,18 +132,18 @@ Break_align_interface::do_alignment (Grob *me)
        table, but that gets icky when that grob is suicided for some
        reason.
       */
-      for (SCM s = r->get_grob_property ("elements");
-          gh_pair_p (s); s = gh_cdr (s))
-       {
-         Grob * elt =unsmob_grob(gh_car (s));
-
-         SCM sym = elt->get_grob_property ("break-align-symbol");
-         if (gh_symbol_p (sym))
-           {
-             rsym = sym;
-             break;
-           }
-       }
+       for (SCM s = r->get_grob_property ("elements");
+            gh_pair_p (s); s = gh_cdr (s))
+         {
+           Grob * elt =unsmob_grob(gh_car (s));
+
+           SCM sym = elt->get_grob_property ("break-align-symbol");
+           if (gh_symbol_p (sym))
+             {
+               rsym = sym;
+               break;
+             }
+         }
       if (rsym  == ly_symbol2scm("left-edge"))
        edge_idx = next_idx;
 
@@ -183,7 +182,7 @@ Break_align_interface::do_alignment (Grob *me)
        offsets[next_idx] = extents[idx][RIGHT] + distance;
       else if (type == ly_symbol2scm("minimum-space"))
        offsets[next_idx] = extents[idx][RIGHT] >? distance;
-
+      
       idx = next_idx;
     }
 
index e8f71657e4418ad57a121da57f960ab34d9100f2..e9bfd001dcbe9fd5d359d25547159ca62805b36e 100644 (file)
@@ -1,6 +1,8 @@
 #include "item.hh"
 #include "spanner.hh"
+#include "paper-column.hh"
 
+extern "C" {
 // thanks to GDBs wonderful casting abilities, we need these:
 Item*
 to_item (Grob* g)
@@ -12,3 +14,10 @@ to_spanner (Grob*g)
 {
   return dynamic_cast<Spanner*> (g);
 }
+
+Paper_column*
+to_pc (Grob* g)
+{
+  return dynamic_cast<Paper_column*> (g);
+}
+}
index 6f72730b9b857264aa0ccb251e9eb28ba87156ec..542c52141e7d6e53b4096549ea190ced09594f9b 100644 (file)
     (LeftEdge
      . (
        (break-align-symbol . left-edge)
-       (X-offset-callbacks . (,Break_align_interface::alignment_callback))
        (X-extent-callback . ,Grob::point_dimension_callback)
        (breakable . #t)
        (space-alist . (