2 dot-column-engraver.cc -- implement Dot_column_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 1998--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
9 #include "rhythmic-head.hh"
10 #include "dot-column.hh"
11 #include "side-position-interface.hh"
12 #include "engraver.hh"
14 #include "translator.icc"
16 class Dot_column_engraver : public Engraver
22 TRANSLATOR_DECLARATIONS (Dot_column_engraver);
26 DECLARE_ACKNOWLEDGER (stem);
27 DECLARE_ACKNOWLEDGER (rhythmic_head);
29 void stop_translation_timestep ();
32 Dot_column_engraver::Dot_column_engraver ()
39 Dot_column_engraver::stop_translation_timestep ()
42 Add the stem to the support so dots stay clear of flags.
47 dotcol_->set_object ("stem", stem_->self_scm ());
55 Dot_column_engraver::acknowledge_rhythmic_head (Grob_info info)
57 Grob *d = unsmob_grob (info.grob ()->get_object ("dot"));
61 dotcol_ = make_item ("DotColumn", SCM_EOL);
63 Dot_column::add_head (dotcol_, info.grob ());
68 Dot_column_engraver::acknowledge_stem (Grob_info info)
73 ADD_ACKNOWLEDGER (Dot_column_engraver, stem);
74 ADD_ACKNOWLEDGER (Dot_column_engraver, rhythmic_head);
75 ADD_TRANSLATOR (Dot_column_engraver,
76 /* doc */ "Engraves dots on dotted notes shifted to the right of the note.\n"
77 "If omitted, then dots appear on top of the notes.",
78 /* create */ "DotColumn",