2 dot-column-engraver.cc -- implement Dot_column_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 1998--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
10 #include "rhythmic-head.hh"
11 #include "dot-column.hh"
12 #include "side-position-interface.hh"
13 #include "engraver.hh"
16 class Dot_column_engraver : public Engraver
20 Link_array<Item> heads_;
22 TRANSLATOR_DECLARATIONS (Dot_column_engraver );
25 virtual void acknowledge_grob (Grob_info);
26 virtual void stop_translation_timestep ();
30 Dot_column_engraver::Dot_column_engraver ()
37 Dot_column_engraver::stop_translation_timestep ()
40 Add the stem to the support so dots stay clear of flags.
45 dotcol_->set_property ("stem", stem_->self_scm ());
53 Dot_column_engraver::acknowledge_grob (Grob_info info)
55 Grob *d = unsmob_grob (info.grob_->get_property ("dot"));
60 dotcol_ = make_item ("DotColumn", SCM_EOL);
64 Dot_column::add_head (dotcol_, info.grob_);
66 else if (Stem::has_interface (info.grob_))
75 ADD_TRANSLATOR (Dot_column_engraver,
76 /* descr */ "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 /* creats*/ "DotColumn",
80 /* acks */ "rhythmic-head-interface dot-column-interface stem-interface",