#include "side-position-interface.hh"
#include "staff-symbol-referencer.hh"
#include "warn.hh"
+#include "self-alignment-interface.hh"
+#include "pointer-group-interface.hh"
/*
TODO:
virtual void finalize ();
virtual void acknowledge_grob (Grob_info);
virtual bool try_music (Music *req);
- virtual void stop_translation_timestep ();
- virtual void process_music ();
+ PRECOMPUTED_VIRTUAL void stop_translation_timestep ();
+ PRECOMPUTED_VIRTUAL void process_music ();
};
Dynamic_engraver::Dynamic_engraver ()
finished_line_spanner_ = line_spanner_;
line_spanner_ = 0;
}
+
typeset_all ();
if (cresc_ && !cresc_->get_bound (LEFT))
if (script_ && !script_->get_parent (X_AXIS))
{
- SCM head = scm_last_pair (info.grob ()->get_property ("note-heads"));
- if (scm_is_pair (head))
- script_->set_parent (unsmob_grob (scm_car (head)), X_AXIS);
+ extract_grob_set (info.grob (), "note-heads", heads);
+ if (heads.size())
+ {
+ Grob *head = heads[0];
+ script_->set_parent (head, X_AXIS);
+ script_->add_offset_callback (Self_alignment_interface::centered_on_parent_proc,
+ X_AXIS);
+
+ }
}
if (cresc_)
}
}
+#include "translator.icc"
+
ADD_TRANSLATOR (Dynamic_engraver,
/* descr */
"This engraver creates hairpins, dynamic texts, and their vertical\n"