- Text_script_req * r = reqs_[i];
-
- /*
- Urg: Text_engraver loads TextScriptProperties
- */
- Item *text = new Item (get_property ("basicTextScriptProperties"));
-
-
- SCM axisprop = get_property ("scriptHorizontal");
-
- Side_position::set_axis (text, to_boolean (axisprop) ? X_AXIS : Y_AXIS);
-
- /*
- make sure they're in order by adding i to the priority field.
- */
- text->set_elt_property ("script-priority",
- gh_int2scm (200 + i));
-
- if (r->get_direction ())
- Side_position::set_direction (text, r->get_direction ());
-
- text->set_elt_property ("text",
- ly_str02scm ( r->text_str_.ch_C ()));
-
- if (r->style_str_.length_i ())
- text->set_elt_property ("style", ly_str02scm (r->style_str_.ch_C()));
-
- /*
- Text is empty by default, which means that the only condition
- for not setting 'no-spacing-rods' should be: boolean && true.
-
- Anyway, non-empty text has been broken for some time now.
- */
-
-
- /// URG this is broken by basicTextScriptProperties which defines
- /// no-spacing-rods
- /// FIXME
- SCM nonempty = get_property ("textNonEmpty");
- if (!to_boolean (nonempty))
- /*
- empty text: signal that no rods should be applied.
- */
- text->set_elt_property ("no-spacing-rods" , SCM_BOOL_T);
-
-
- announce_element (text, r);
+ Music *r = evs_[i];
+
+ // URG: Text vs TextScript
+ Item *text = make_item ("TextScript", r->self_scm ());
+
+ Axis ax = Y_AXIS;
+ Side_position_interface::set_axis (text, ax);
+
+ // Hmm
+ int priority = 200;
+ SCM s = text->get_property ("script-priority");
+ if (scm_is_number (s))
+ priority = scm_to_int (s);
+
+ /* see script-engraver.cc */
+ priority += i;
+
+ text->set_property ("script-priority", scm_int2num (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);