]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/paper-column.cc
Merge remote-tracking branch 'origin/master' into translation
[lilypond.git] / lily / paper-column.cc
index d5ac33b55a4e679c80d341258c296a45029c2b40..1cb1452c852dba5eef1ad055387bbab354df5aa4 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 iface, 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 (iface))
+      extent.unite (robust_relative_extent (elts[i], elts[i], a));
+
+  return extent;
+}
+
 /*
   Print a:
   - vertical line,