- if (busy_span_req_ && !mmrest_)
- {
- mmrest_ = new Spanner (get_property ("MultiMeasureRest"));
-
- if (text_events_.size())
- {
- for (int i = 0; i < text_events_.size(); i++)
- {
- Spanner *sp
- = new Spanner (get_property ("MultiMeasureRestText"));
-
- Music* e = text_events_[i];
- SCM t = e->get_mus_property ("text");
- SCM dir = e->get_mus_property ("direction");
- sp->set_grob_property ("text",t);
- if (ly_dir_p (dir))
- sp->set_grob_property ("direction",dir);
-
- numbers_.push (sp);
- announce_grob (sp, e->self_scm());
- }
-
- /*
- Stack different scripts.
- */
- Direction d = DOWN;
- do {
- Grob *last =0;
- for (int i=0; i <numbers_.size(); i++)
- {
- if (gh_int2scm (d) == numbers_[i]->get_grob_property ("direction"))
- {
- if (last)
- Side_position_interface::add_support (numbers_[i], last);
- last = numbers_[i];
- }
- }
- } while (flip (&d) != DOWN);
- }
- else
- {
- Spanner *sp
- = new Spanner (get_property ("MultiMeasureRestNumber"));
- numbers_.push (sp);
- announce_grob (sp, busy_span_req_->self_scm());
- }
-
- for (int i =0 ; i < numbers_.size(); i++)
- {
- Side_position_interface::add_support (numbers_[i], mmrest_);
- numbers_[i]->set_parent (mmrest_, Y_AXIS);
- }
-
- announce_grob (mmrest_, busy_span_req_->self_scm());
- start_measure_
- = gh_scm2int (get_property ("currentBarNumber"));
- }
+void
+Multi_measure_rest_engraver::add_bound_item_to_grobs (Item *item)
+{
+ add_bound_item (mmrest_, item);
+ for (vsize i = 0; i < text_.size (); ++i)
+ add_bound_item (text_[i], item);
+}