source file of the GNU LilyPond music typesetter
- (c) 1998--2001 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1998--2002 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
This is an inner loop, however, in most cases, the interesting L
will just be the first entry of NEXT, making it linear in most of
the cases. */
- for(; gh_pair_p (next); next = gh_cdr (next))
+ for(; gh_pair_p (next); next = ly_cdr (next))
{
- Item *l = dynamic_cast<Item*> (unsmob_grob (gh_car( next)));
+ Item *l = dynamic_cast<Item*> (unsmob_grob (ly_car( next)));
Item *lb = l->find_prebroken_piece (RIGHT);
if (lb)
}
}
+MAKE_SCHEME_CALLBACK (Separating_group_spanner,set_spacing_rods_and_seqs,1);
+SCM
+Separating_group_spanner::set_spacing_rods_and_seqs (SCM smob)
+{
+ set_spacing_rods (smob);
+
+ return SCM_UNSPECIFIED;
+}
+
MAKE_SCHEME_CALLBACK (Separating_group_spanner,set_spacing_rods,1);
SCM
Separating_group_spanner::set_spacing_rods (SCM smob)
{
Grob*me = unsmob_grob (smob);
- for (SCM s = me->get_grob_property ("elements"); gh_pair_p (s) && gh_pair_p (gh_cdr (s)); s = gh_cdr (s))
+ for (SCM s = me->get_grob_property ("elements"); gh_pair_p (s) && gh_pair_p (ly_cdr (s)); s = ly_cdr (s))
{
/*
Order of elements is reversed!
*/
- SCM elt = gh_car (s);
- Item *r = dynamic_cast<Item*> (unsmob_grob (elt));
+ SCM elt = ly_car (s);
+ Item *r = unsmob_item (elt);
if (!r)
continue;
Item *rb
= dynamic_cast<Item*> (r->find_prebroken_piece (LEFT));
- find_rods (r, gh_cdr (s));
+ find_rods (r, ly_cdr (s));
if (rb)
- find_rods (rb, gh_cdr (s));
+ find_rods (rb, ly_cdr (s));
}
+#if 0
+ /*
+ TODO; restore this.
+ */
/*
We've done our job, so we get lost.
*/
- for (SCM s = me->get_grob_property ("elements"); gh_pair_p (s); s = gh_cdr (s))
+ for (SCM s = me->get_grob_property ("elements"); gh_pair_p (s); s = ly_cdr (s))
{
- Item * it =dynamic_cast<Item*> (unsmob_grob (gh_car (s)));
+ Item * it =dynamic_cast<Item*> (unsmob_grob (ly_car (s)));
if (it && it->broken_b ())
{
it->find_prebroken_piece (LEFT) ->suicide ();
it->suicide ();
}
me->suicide ();
+#endif
return SCM_UNSPECIFIED ;
}
void
Separating_group_spanner::add_spacing_unit (Grob* me ,Item*i)
{
- Pointer_group_interface::add_element (me, "elements",i);
+ Pointer_group_interface::add_grob (me, ly_symbol2scm ("elements"), i);
me->add_dependency (i);
}
-void
-Separating_group_spanner::set_interface (Grob*)
-{
-}
-
bool
Separating_group_spanner::has_interface (Grob*)
{//todo
assert (false);
}
+
+
+
+ADD_INTERFACE (Separating_group_spanner,"separation-spanner-interface",
+ "Spanner that containing @code{separation-item-interface} grobs to calculate rods",
+ "");