- // 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));
-
- art = ly_cdr (art);
- bool follow_staff = gh_scm2bool (ly_car (art));
- art = ly_cdr (art);
- SCM relative_stem_dir = ly_car (art);
- art = ly_cdr (art);
-
- SCM force_dir = l->get_mus_property ("direction");
- if (isdir_b (force_dir) && !to_dir (force_dir))
- force_dir = ly_car (art);
-
- art = ly_cdr (art);
- SCM priority = ly_car (art);
-
- if (isdir_b (force_dir) && to_dir (force_dir))
- p->set_grob_property ("direction", force_dir);
- else if (to_dir (relative_stem_dir))
- p->set_grob_property ("side-relative-direction", relative_stem_dir);
-
-
- /*
- FIXME: should figure this out in relation with basic props!
- */
- 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);
-
- if (!xaxis && follow_staff)
- p->add_offset_callback (Side_position_interface::quantised_position_proc, Y_AXIS);
-
-
- p->set_grob_property ("script-priority", priority);
-
- script_p_arr_.push (p);
-
- announce_grob (p, l);