*/
#include "engraver.hh"
+#include "moment.hh"
#include "note-spacing.hh"
#include "paper-column.hh"
#include "pointer-group-interface.hh"
void
Spacing_engraver::listen_spacing_section (Stream_event *ev)
{
- start_section_ = ev;
+ ASSIGN_EVENT_ONCE (start_section_, ev);
}
void
{
assert (!spacing_);
+
spacing_ = make_spanner ("SpacingSpanner", SCM_EOL);
spacing_->set_bound (LEFT,
unsmob_grob (get_property ("currentCommandColumn")));
= dynamic_cast<Paper_column *> (unsmob_grob (get_property ("currentMusicalColumn")));
- if (spacing_)
- {
- musical_column->set_object ("spacing", spacing_->self_scm ());
- unsmob_grob (get_property ("currentCommandColumn"))
- ->set_object ("spacing", spacing_->self_scm ());
- }
+ if (!spacing_)
+ start_spanner ();
+
+ musical_column->set_object ("spacing", spacing_->self_scm ());
+ unsmob_grob (get_property ("currentCommandColumn"))
+ ->set_object ("spacing", spacing_->self_scm ());
SCM proportional = get_property ("proportionalNotationDuration");
if (unsmob_moment (proportional))
{
musical_column->set_property ("shortest-playing-duration", proportional);
musical_column->set_property ("shortest-starter-duration", proportional);
+ musical_column->set_property ("used", SCM_BOOL_T);
return;
}
"bookkeeping of shortest starting and playing notes ",
/* create */ "SpacingSpanner",
- /* accept */
- "spacing-section-event ",
/* read */
"currentMusicalColumn "
"currentCommandColumn "