2 dot-column-engraver.cc -- implement Dot_column_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 1998--2005 Han-Wen Nienhuys <hanwen@cs.uu.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
20 Link_array<Item> heads_;
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"));
62 dotcol_ = make_item ("DotColumn", SCM_EOL);
65 Dot_column::add_head (dotcol_, info.grob ());
71 Dot_column_engraver::acknowledge_stem (Grob_info info)
76 ADD_ACKNOWLEDGER (Dot_column_engraver, stem);
77 ADD_ACKNOWLEDGER (Dot_column_engraver, rhythmic_head);
78 ADD_TRANSLATOR (Dot_column_engraver,
79 /* descr */ "Engraves dots on dotted notes shifted to the right of the note.\n"
80 "If omitted, then dots appear on top of the notes.",
81 /* creats*/ "DotColumn",