]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/grid-line-interface.cc
Run `make grand-replace'.
[lilypond.git] / lily / grid-line-interface.cc
index 953fe4ab7e302a619deadceba11ac764e011683d..6401f6ef199a42e1e9d37186c99f182d057bfc7d 100644 (file)
@@ -3,33 +3,30 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
-
+  (c) 2005--2008 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 (vsize i = 0; i < elts.size (); i++)
     {
-      Grob *point = unsmob_grob (scm_car (elts));
+      Grob *point = elts[i];
 
       iv.unite (point->extent (refp, Y_AXIS));
     }
@@ -40,30 +37,27 @@ Grid_line_interface::print (SCM smobbed_me)
       return SCM_EOL;
     }
 
-  Real staffline = me->get_layout ()->get_dimension (ly_symbol2scm ("linethickness"));
+  Real staffline = me->layout ()->get_dimension (ly_symbol2scm ("line-thickness"));
   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));
 
   return st.smobbed_copy ();
 }
 
-MAKE_SCHEME_CALLBACK (Grid_line_interface, width_callback, 2);
+MAKE_SCHEME_CALLBACK (Grid_line_interface, width, 1);
 SCM
-Grid_line_interface::width_callback (SCM element_smob, SCM scm_axis)
+Grid_line_interface::width (SCM smob)
 {
-  Grob *me = unsmob_grob (element_smob);
-  (void) scm_axis;
-  assert (scm_to_int (scm_axis) == X_AXIS);
+  Grob *me = unsmob_grob (smob);
 
-  Real staffline = me->get_layout ()->get_dimension (ly_symbol2scm ("linethickness"));
+  Real staffline = me->layout ()->get_dimension (ly_symbol2scm ("line-thickness"));
   Real thick = robust_scm2double (me->get_property ("thickness"), 1.0)
     * staffline;
-  
+
   return ly_interval2scm (Interval (0, thick));
 }
 
@@ -71,14 +65,19 @@ 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_line_interface,
+              "A line that is spanned between grid-points.",
+
+              /* properties */
+              "elements "
+              "thickness "
+              );
 
+ADD_INTERFACE (Grid_point_interface,
+              "A spanning point for grid lines.",
 
-ADD_INTERFACE (Grid_point_interface, "grid-point-interface",
-              "A spanning point for grid lines. ",
-              "");
+              /* properties */
+              ""
+              );