]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/cluster.cc
Imported Upstream version 2.14.2
[lilypond.git] / lily / cluster.cc
index 7a84195493df6efd7e3dedbe4562e0e168fb4c49..9922839099334f512cb39a677962c0e0beb51d61 100644 (file)
@@ -1,11 +1,21 @@
 /*
-  cluster.cc -- implement Cluster
+  This file is part of LilyPond, the GNU music typesetter.
 
-  source file of the GNU LilyPond music typesetter
+  Copyright (C) 2002--2011 Juergen Reuter <reuter@ipd.uka.de>
+  Han-Wen Nienhuys <hanwen@xs4all.nl>
 
-  (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
 
-  Han-Wen Nienhuys <hanwen@xs4all.nl>
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "cluster.hh"
@@ -111,6 +121,18 @@ brew_cluster_piece (Grob *me, vector<Offset> bottom_points, vector<Offset> top_p
   return out;
 }
 
+MAKE_SCHEME_CALLBACK (Cluster, calc_cross_staff, 1);
+SCM
+Cluster::calc_cross_staff (SCM smob)
+{
+  Grob *me = unsmob_grob (smob);
+
+  extract_grob_set (me, "columns", cols);
+  Grob *commony = common_refpoint_of_array (cols, me, Y_AXIS);
+
+  return scm_from_bool (commony != me->get_parent (Y_AXIS));
+}
+
 MAKE_SCHEME_CALLBACK (Cluster, print, 1);
 SCM
 Cluster::print (SCM smob)
@@ -186,15 +208,17 @@ Cluster::print (SCM smob)
 }
 
 ADD_INTERFACE (Cluster,
-              "A graphically drawn musical cluster. "
-              "\n\n"
-              "@code{padding} adds to the vertical extent of the shape (top and "
-              "bottom). \n\n"
-              "The property @code{style} controls the shape of cluster segments.  Valid values "
-              "include @code{leftsided-stairs}, @code{rightsided-stairs}, @code{centered-stairs}, "
-              "and @code{ramp}.\n",
-
-              /* props */
+              "A graphically drawn musical cluster.\n"
+              "\n"
+              "@code{padding} adds to the vertical extent of the shape (top"
+              " and bottom).\n"
+              "\n"
+              "The property @code{style} controls the shape of cluster"
+              " segments.  Valid values include @code{leftsided-stairs},"
+              " @code{rightsided-stairs}, @code{centered-stairs}, and"
+              " @code{ramp}.\n",
+
+              /* properties */
               "style "
               "padding "
               "columns "
@@ -218,8 +242,10 @@ Cluster_beacon::height (SCM g)
 }
 
 ADD_INTERFACE (Cluster_beacon,
-              "A place holder for the cluster spanner to determine the vertical "
-              "extents of a cluster spanner at this X position.",
+              "A place holder for the cluster spanner to determine the"
+              " vertical extents of a cluster spanner at this"
+              " X@tie{}position.",
 
               /* properties */
-              "positions ");
+              "positions "
+              );