tie_break_reminder);
Side_position_interface::add_support (key_item_p_,support_l);
- support_l->set_grob_property ("accidentals", key_item_p_->self_scm ());
+ support_l->set_grob_property ("accidentals-grob", key_item_p_->self_scm ());
}
warning (_f ("unknown spacing pair `%s', `%s'",
ly_symbol2string (current_origin),
ly_symbol2string (next_origin)));
- extra_space = scm_list_n (ly_symbol2scm ("minimum-space"), gh_double2scm (0.0), SCM_UNDEFINED);
+ extra_space = scm_list_n (ly_symbol2scm ("minimum-space-pair"), gh_double2scm (0.0), SCM_UNDEFINED);
}
SCM symbol = ly_car (extra_space);
// urg
- SCM first_pair = elems[0]->get_grob_property ("minimum-space");
+ SCM first_pair = elems[0]->get_grob_property ("minimum-space-pair");
if (gh_pair_p (first_pair))
first_pair = first_pair;
else
first_pair = gh_cons (gh_double2scm (0.0), gh_double2scm (0.0));
scm_set_car_x (first_pair, gh_double2scm (-dists[0]));
- elems[0]->set_grob_property ("minimum-space", first_pair);
+ elems[0]->set_grob_property ("minimum-space-pair", first_pair);
Direction bsd = item->break_status_dir ();
if (bsd == LEFT)
spring_len += dists.top ();
stretch_distance = dists.top ();
}
- else if (ly_car (symbol_list) == ly_symbol2scm ("minimum-space"))
+ else if (ly_car (symbol_list) == ly_symbol2scm ("minimum-space-pair"))
{
spring_len = spring_len >? dists.top ();
stretch_distance = spring_len;
bool
-type_check_assignment (SCM val, SCM sym, SCM type_symbol)
+type_check_assignment (SCM sym, SCM val, SCM type_symbol)
{
bool ok = true;
+
+ /*
+ Always succeeds.
+
+
+ TODO: should remove #f from allowed vals?
+ */
+ if (val == SCM_EOL || val == SCM_BOOL_F)
+ return ok;
+
+
SCM type_p = SCM_EOL;
if (gh_symbol_p (sym))
if (type_p != SCM_EOL && !gh_procedure_p (type_p))
{
- warning (_f ("Can't find property type-check for `%s'. Perhaps you made a typing error? Doing assignment anyway.",
- ly_symbol2string (sym).ch_C ()));
+ warning (_f ("Can't find property type-check for `%s' (%s). Perhaps you made a typing error? Doing assignment anyway.",
+ ly_symbol2string (sym).ch_C (),
+ ly_symbol2string (type_symbol).ch_C ()
+
+ ));
}
else
{
{
/*
Done: destruct pointers, so we do the shift only once.
+
+ TODO: use rest-collision-done
*/
SCM elts = rc->get_grob_property ("elements");
rc->set_grob_property ("elements", SCM_EOL);
// todo -> use result of articulation-to-scriptdef directly as basic prop list.
Grob *p =new Item (get_property ("Script"));
art = ly_cdr (art);
- p->set_grob_property ("molecule", ly_car (art));
+ p->set_grob_property ("script-molecule", ly_car (art));
art = ly_cdr (art);
bool follow_staff = gh_scm2bool (ly_car (art));
SCM axisprop = get_property ("scriptHorizontal");
bool xaxis = to_boolean (axisprop);
Side_position_interface::set_axis (p, xaxis ? X_AXIS : Y_AXIS);
-
+
if (!follow_staff && ! xaxis)
p->set_grob_property ("staff-support", SCM_BOOL_T);
{
for (int i=0; i < script_p_arr_.size (); i++)
{
+
+ /*
+ TODO: junk staff-support.
+ */
Grob * sc = script_p_arr_[i];
if (to_boolean (sc->get_grob_property ("staff-support")))
{
Molecule
Script::get_molecule (Grob * me, Direction d)
{
- SCM s = me->get_grob_property ("molecule");
+ SCM s = me->get_grob_property ("script-molecule");
assert (gh_pair_p (s));
SCM key = ly_car (s);