+ span_req_l_drul_[START]->warning
+ (span_start_req_l_->span_dir_ == 1
+ ?
+ _ ("already have a crescendo")
+ : _ ("already have a decrescendo"));
+ }
+ else
+ {
+ span_start_req_l_ = span_req_l_drul_[START];
+ cresc_p_ = new Crescendo (get_property ("basicCrescendoProperties"));
+ cresc_p_->set_elt_property
+ ("grow-direction",
+ gh_int2scm ((span_req_l_drul_[START]->span_type_str_ == "crescendo")
+ ? BIGGER : SMALLER));
+
+ SCM s = get_property (span_req_l_drul_[START]->span_type_str_ + "Text");
+ if (gh_string_p (s))
+ {
+ cresc_p_->set_elt_property ("start-text", s);
+ daddy_trans_l_->set_property (span_req_l_drul_[START]->span_type_str_
+ + "Text", SCM_UNDEFINED);
+ }
+
+ s = get_property (span_req_l_drul_[START]->span_type_str_ + "Spanner");
+
+
+ /*
+ TODO: Use symbols.
+ */
+ if (gh_string_p (s)) //&& ly_scm2string (s) != "hairpin")
+ {
+ cresc_p_->set_elt_property ("spanner", s);
+ daddy_trans_l_->set_property (span_req_l_drul_[START]->span_type_str_
+ + "Spanner", SCM_UNDEFINED);
+ }
+
+ cresc_p_->set_bound (LEFT, get_staff_info ().musical_pcol_l ());
+
+
+ /*
+ We know how wide the text is, if we can be sure that the
+ text already has relevant pointers into the paperdef,
+ and it has its font-size property set.
+
+ Since font-size may be set by a context higher up, we
+ can not be sure of the size.
+
+
+ We shouldn't try to do this stuff here, the Item should
+ do it when the score is finished. We could maybe
+ set a callback to have the Item do the alignment if
+ it is not a special symbol, like Crescendo.
+ */
+
+
+ if (text_p_)
+ {
+ index_set_cell (cresc_p_->get_elt_property ("dynamic-drul"),
+ LEFT, SCM_BOOL_T);
+ if (finished_cresc_p_)
+ index_set_cell (finished_cresc_p_->get_elt_property ("dynamic-drul"),
+ RIGHT, SCM_BOOL_T);
+ }
+ pending_element_arr_.push (cresc_p_);
+ cresc_p_->set_elt_property ("self-alignment-Y", gh_int2scm (0));
+ cresc_p_->add_offset_callback
+ (Side_position_interface::aligned_on_self, Y_AXIS);
+ announce_element (Score_element_info (cresc_p_, span_req_l_drul_[START]));