*/
#include "separating-group-spanner.hh"
+
#include "separation-item.hh"
#include "paper-column.hh"
-#include "paper-def.hh"
+#include "output-def.hh"
#include "dimensions.hh"
#include "group-interface.hh"
return;
- for(; gh_pair_p (next); next = ly_cdr (next))
+ for (; scm_is_pair (next); next = scm_cdr (next))
{
- Item *l = dynamic_cast<Item*> (unsmob_grob (ly_car( next)));
+ Item *l = dynamic_cast<Item*> (unsmob_grob (scm_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);
- Real padding = robust_scm2double (me->get_grob_property ("padding"), 0.1);
+
+ /*
+ Ugh: padding is added doubly, also for SeparationItem
+ */
+ Real padding = robust_scm2double (me->get_property ("padding"), 0.1);
- for (SCM s = me->get_grob_property ("elements"); gh_pair_p (s) && gh_pair_p (ly_cdr (s)); s = ly_cdr (s))
+ for (SCM s = me->get_property ("elements"); scm_is_pair (s) && scm_is_pair (scm_cdr (s)); s = scm_cdr (s))
{
/*
Order of elements is reversed!
*/
- SCM elt = ly_car (s);
+ SCM elt = scm_car (s);
Item *r = unsmob_item (elt);
if (!r)
Item *rb
= dynamic_cast<Item*> (r->find_prebroken_piece (LEFT));
- find_rods (r, ly_cdr (s), padding);
+ find_rods (r, scm_cdr (s), padding);
if (rb)
- find_rods (rb, ly_cdr (s), padding);
+ find_rods (rb, scm_cdr (s), padding);
}
return SCM_UNSPECIFIED ;
ADD_INTERFACE (Separating_group_spanner,"separation-spanner-interface",
- "Spanner that containing @code{separation-item-interface} grobs to calculate rods",
- "");
+ "A spanner that calculates spacing constraints (\"rods\") "
+ "using the @code{separation-item-interface} grobs in @code{elements}.",
+ "elements padding");