]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/paper-column.cc
Issue 3254: align unassociated lyrics using NoteColumn extent.
[lilypond.git] / lily / paper-column.cc
index d5ac33b55a4e679c80d341258c296a45029c2b40..3e6988de0cd5b6fdd7bb8833ae313c7432cf8a11 100644 (file)
@@ -218,6 +218,23 @@ Paper_column::break_align_width (Grob *me, SCM align_sym)
   return align->extent (p, X_AXIS);
 }
 
+/*
+  Loop through elements of a PaperColumn, find all grobs implementing specified
+  interface and return their combined extent.
+*/
+Interval
+Paper_column::get_interface_extent (Grob *column, SCM interface, Axis a)
+{
+  Interval extent = Interval (0, 0);
+  extract_grob_set (column, "elements", elts);
+
+  for (vsize i = 0; i < elts.size (); i++)
+    if (elts[i]->internal_has_interface (interface))
+      extent.unite (robust_relative_extent (elts[i], elts[i], a));
+
+  return extent;
+}
+
 /*
   Print a:
   - vertical line,