2 engraver.cc -- implement Engraver
4 Sourcefile of GNU LilyPond music type setter
6 (c) 1997--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
12 #include "score-engraver.hh"
17 #include "lilypond-key.hh"
20 Engraver::get_daddy_engraver () const
22 return dynamic_cast<Engraver_group *> (get_daddy_translator ());
26 Engraver::announce_grob (Grob_info inf)
28 get_daddy_engraver ()->announce_grob (inf);
32 Engraver::announce_end_grob (Grob_info inf)
34 get_daddy_engraver ()->announce_grob (inf);
38 CAUSE is the object (typically a Music object) that
39 was the reason for making E.
42 Engraver::announce_grob (Grob *e, SCM cause)
44 if (unsmob_music (cause) || unsmob_grob (cause))
45 e->set_property ("cause", cause);
47 Grob_info i (this, e);
49 Engraver_group *g = get_daddy_engraver ();
56 CAUSE is the object (typically a Music object) that
57 was the reason for making E.
60 Engraver::announce_end_grob (Grob *e, SCM cause)
62 if (unsmob_music (cause) || unsmob_grob (cause))
63 e->set_property ("cause", cause);
65 Grob_info i (this, e);
68 Engraver_group *g = get_daddy_engraver ();
78 #include "translator.icc"
80 ADD_TRANSLATOR (Engraver,
81 "Base class for engravers. Does nothing, so it is not used.",