- // todo -> use result of articulation-to-scriptdef directly as basic prop list.
- Grob *p =new Item (get_property ("Script"));
- list = gh_cdr (list);
- p->set_grob_property ("molecule",
- gh_car (list));
-
- list = gh_cdr(list);
- bool follow_staff = gh_scm2bool (gh_car (list));
- list = gh_cdr(list);
- SCM relative_stem_dir = gh_car (list);
- list = gh_cdr(list);
-
- SCM force_dir = l->get_mus_property ("direction");
- if (!isdir_b (force_dir))
- force_dir = gh_car (list);
- list = gh_cdr(list);
- SCM priority = gh_car (list);
-
-
- if (!isdir_b (force_dir)
- && to_dir (relative_stem_dir))
- p->set_grob_property ("side-relative-direction", relative_stem_dir);
- else
- p->set_grob_property ("direction", force_dir);
-
- /*
- FIXME: should figure this out in relation with basic props!
- */
- SCM axisprop = get_property ("scriptHorizontal");
- bool xaxis = to_boolean (axisprop);
- Side_position::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::quantised_position_proc, Y_AXIS);
-
-
- p->set_grob_property ("script-priority", priority);
-
- script_p_arr_.push (p);
-
- announce_grob (p, l);