- if (dynamic_p_)
- {
- dynamic_req_l_arr_[i]->warning (_("Got a dynamic already. Continuing dazed and confused"));
- continue;
- }
-
- Text_def * td_p = new Text_def;
- td_p->align_dir_ = CENTER;
- String loud = absd->loudness_str ();
- td_p->text_str_ = paper ()->lookup_l (0)->dynamic (loud).str_; // ugh
- td_p->style_str_ = "dynamic";
+ Side_position::set_axis (line_spanner_, Y_AXIS);
+ Axis_group_interface::set_interface (line_spanner_);
+ Axis_group_interface::set_axes (line_spanner_, Y_AXIS, Y_AXIS);
+
+ Request * rq = accepted_spanreqs_drul_[START];
+ if (script_req_l_) rq = script_req_l_ ;
+ announce_element (line_spanner_, rq);
+
+
+ }
+ }
+
+ /*
+ finish side position alignment if the (de)cresc ends here, and
+ there are no new dynamics.
+
+ */
+ else if (accepted_spanreqs_drul_[STOP]
+ && !accepted_spanreqs_drul_[START] && !script_req_l_)
+ {
+ finished_line_spanner_ = line_spanner_;
+ line_spanner_ = 0;
+ }
+
+ /*
+ todo: resurrect dynamic{direction, padding,minimumspace}
+ */
+ /*
+ During a (de)crescendo, pending request will not be cleared,
+ and a line-spanner will always be created, as \< \! are already
+ two requests.
+
+ Maybe always creating a line-spanner for a (de)crescendo (see
+ below) is not a good idea:
+
+ a\< b\p \!c
+
+ the \p will be centred on the line-spanner, and thus clash
+ with the hairpin. When axis-group code is in place, the \p
+ should move below the hairpin, which is probably better?
+
+ Urg, but line-spanner must always have at least same duration
+ as (de)crecsendo, b.o. line-breaking.
+ */
+
+
+
+ /*
+ maybe we should leave dynamic texts to the text-engraver and
+ simply acknowledge them?
+ */
+ if (script_req_l_)
+ {
+ script_p_ = new Item (get_property ("DynamicText"));
+ script_p_->set_elt_property ("text",
+ script_req_l_->get_mus_property ("text"));
+ if (Direction d = script_req_l_->get_direction ())
+ Directional_element_interface::set (line_spanner_, d);
+
+ Axis_group_interface::add_element (line_spanner_, script_p_);