*/
-#include "group-interface.hh"
-#include "output-def.hh"
-#include "stencil.hh"
-#include "lookup.hh"
#include "grid-line-interface.hh"
+
#include "grob.hh"
+#include "pointer-group-interface.hh"
+#include "lookup.hh"
+#include "output-def.hh"
+#include "stencil.hh"
MAKE_SCHEME_CALLBACK (Grid_line_interface, print, 1);
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));
}
Real thick = robust_scm2double (me->get_property ("thickness"), 1.0)
* staffline;
-
iv += - me->relative_coordinate (refp, Y_AXIS);
Stencil st = Lookup::filled_box (Box (Interval (0, thick),
iv));
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",
ADD_INTERFACE (Grid_point_interface, "grid-point-interface",
"A spanning point for grid lines. ",
"");
-