diff --git a/lily/multi-measure-rest-engraver.cc b/lily/multi-measure-rest-engraver.cc index 3fbcdb6..cddd4f5 100644 --- a/lily/multi-measure-rest-engraver.cc +++ b/lily/multi-measure-rest-engraver.cc @@ -56,6 +56,7 @@ private: Item *last_command_item_; Spanner *last_rest_; Spanner *mmrest_; + Spanner *nums_text_; vector numbers_; vector last_numbers_; @@ -108,6 +109,14 @@ Multi_measure_rest_engraver::process_music () = make_spanner ("MultiMeasureRestNumber", rest_ev_->self_scm ()); numbers_.push_back (sp); + { + Spanner *sp + = make_spanner ("MultiMeasureRestText", rest_ev_->self_scm ()); + sp->set_property ("direction", scm_from_int (DOWN)); + nums_text_ = sp; + numbers_.push_back (sp); + } + if (text_events_.size ()) { for (vsize i = 0; i < text_events_.size (); i++) @@ -253,6 +262,22 @@ Multi_measure_rest_engraver::start_translation_timestep () last->set_property ("text", text); } } + + if(nums_text_ != 0) + { + if(num <= 1) + { + nums_text_->suicide (); + nums_text_ = 0; + } + else + { + char s[100]; + sprintf (s, "[%d-%d]", start_measure_, cur-1); + nums_text_->set_property ("text", ly_string2scm(s)); + nums_text_ = 0; + } + } } last_main_moment_ = now.main_part_;