- String basic = "TextScript";
-
- if (r->get_mus_property ("text-type") == ly_symbol2scm ("finger"))
- {
- basic = "Fingering";
- }
-
- Item *text = new Item (get_property (basic.ch_C ()));
-
- /*
- FIXME -> need to use basic props.
- */
- SCM axisprop = get_property ("scriptHorizontal");
-
- Axis ax = to_boolean (axisprop) ? X_AXIS : Y_AXIS;
- Side_position_interface::set_axis (text, ax);
-
-#if 0
- if (r->style_str_ == "finger" && ax == Y_AXIS)
- {
- /*
- nicely center the scripts.
- */
- text->add_offset_callback (Side_position_interface::aligned_on_self_proc, X_AXIS);
- text->add_offset_callback (Side_position_interface::centered_on_parent_proc, X_AXIS);
- }
-#endif
-
-
-
- /*
- make sure they're in order by adding i to the priority field.
- */
- text->set_grob_property ("script-priority",
- gh_int2scm (200 + i));
-
- if (r->get_direction ())
- Side_position_interface::set_direction (text, r->get_direction ());
-
- text->set_grob_property ("text", r->get_mus_property ("text"));
-
- SCM nonempty = get_property ("textNonEmpty");
- if (to_boolean (nonempty))
- /*
- empty text: signal that no rods should be applied.
- */
- text->set_grob_property ("no-spacing-rods" , SCM_BOOL_F);
-
- announce_grob (text, r);
- texts_.push (text);
+ Item *text = make_item ("TextScript", r->self_scm ());
+
+ int priority = robust_scm2int (text->get_property ("script-priority"),
+ 200);
+
+ /* see script-engraver.cc */
+ priority += i;
+
+ text->set_property ("script-priority", scm_from_int (priority));
+
+ Direction dir = to_dir (r->get_property ("direction"));
+ if (dir)
+ set_grob_direction (text, dir);
+
+ SCM mark = r->get_property ("text");
+
+ text->set_property ("text", mark);
+ texts_.push_back (text);