+void
+Bar_number_engraver::stop_translation_timestep ()
+{
+ text_ = 0;
+}
+
+void
+Bar_number_engraver::create_items ()
+{
+ if (text_)
+ return;
+
+ text_ = make_item ("BarNumber", SCM_EOL);
+}
+
+
+ADD_ACKNOWLEDGER(Bar_number_engraver,break_aligned);
+ADD_ACKNOWLEDGER(Bar_number_engraver,break_alignment);
+
+ADD_TRANSLATOR (Bar_number_engraver,
+ /* doc */ "A bar number is created whenever measurePosition "
+ "is zero and when there is a bar line (ie. when @code{whichBar} is set. "
+ "It is \n"
+ "put on top of all staves, and appears only at left side of the staff. "
+ "The staves are taken from @code{stavesFound}, which is maintained by "
+ "@code{@ref{Staff_collecting_engraver}}. ",
+
+ /* create */ "BarNumber",
+ /* read */
+ "currentBarNumber "
+ "whichBar "
+ "stavesFound "
+ "barNumberVisibility ",
+ /* write */ "");