]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/grid-line-interface.cc
* python/convertrules.py (string_or_scheme): Fix spelling error
[lilypond.git] / lily / grid-line-interface.cc
index 953fe4ab7e302a619deadceba11ac764e011683d..82178f35e8a74e1b3904f6e3f90295cc262273af 100644 (file)
@@ -4,32 +4,30 @@
   source file of the GNU LilyPond music typesetter
 
   (c) 2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
-
 */
 
 #include "grid-line-interface.hh"
 
 #include "grob.hh"
-#include "group-interface.hh"
+#include "pointer-group-interface.hh"
 #include "lookup.hh"
 #include "output-def.hh"
 #include "stencil.hh"
 
-
 MAKE_SCHEME_CALLBACK (Grid_line_interface, print, 1);
 SCM
 Grid_line_interface::print (SCM smobbed_me)
 {
   Grob *me = unsmob_grob (smobbed_me);
-  SCM first_elt = me->get_property ("elements");
 
+  extract_grob_set (me, "elements", elts);
   /* compute common refpoint of elements */
-  Grob *refp = common_refpoint_of_list (first_elt, me, Y_AXIS);
+  Grob *refp = common_refpoint_of_array (elts, me, Y_AXIS);
   Interval iv;
-  
-  for (SCM elts = first_elt; scm_is_pair (elts); elts = scm_cdr (elts))
+
+  for (int i = 0; i < elts.size (); i++)
     {
-      Grob *point = unsmob_grob (scm_car (elts));
+      Grob *point = elts[i];
 
       iv.unite (point->extent (refp, Y_AXIS));
     }
@@ -44,8 +42,7 @@ Grid_line_interface::print (SCM smobbed_me)
   Real thick = robust_scm2double (me->get_property ("thickness"), 1.0)
     * staffline;
 
-
-  iv += - me->relative_coordinate (refp, Y_AXIS);
+  iv += -me->relative_coordinate (refp, Y_AXIS);
   Stencil st = Lookup::filled_box (Box (Interval (0, thick),
                                        iv));
 
@@ -63,7 +60,7 @@ Grid_line_interface::width_callback (SCM element_smob, SCM scm_axis)
   Real staffline = me->get_layout ()->get_dimension (ly_symbol2scm ("linethickness"));
   Real thick = robust_scm2double (me->get_property ("thickness"), 1.0)
     * staffline;
-  
+
   return ly_interval2scm (Interval (0, thick));
 }
 
@@ -71,14 +68,12 @@ void
 Grid_line_interface::add_grid_point (Grob *me, Grob *b)
 {
   Pointer_group_interface::add_grob (me, ly_symbol2scm ("elements"), b);
-  me->add_dependency (b);
 }
 
 ADD_INTERFACE (Grid_line_interface, "grid-line-interface",
               "A  line that spanned between grid-points. ",
               "elements thickness");
 
-
 ADD_INTERFACE (Grid_point_interface, "grid-point-interface",
               "A spanning point for grid lines. ",
               "");