lilypond-1.3.145
[lilypond.git] / lily / engraver.cc
blob02e683b05501f8dfea9bdc53e159e514c1914af8
1 /*
2 engraver.cc -- implement Engraver
4 Sourcefile of GNU LilyPond music type setter
6 (c) 1997--2001 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
9 #include "music.hh"
10 #include "engraver.hh"
11 #include "engraver-group-engraver.hh"
12 #include "grob.hh"
15 void
16 Engraver::announce_grob (Grob_info inf)
18 daddy_grav_l ()->announce_grob (inf);
21 void
22 Engraver::announce_grob (Grob* e, Music *m)
24 if (m && m->origin ()->location_str ().length_i ())
26 e->set_grob_property ("origin", m->get_mus_property ("origin"));
29 Grob_info i (e, m);
30 if (!i.origin_trans_l_)
31 i.origin_trans_l_ = this;
32 daddy_grav_l ()->announce_grob (i);
37 void
38 Engraver::typeset_grob (Grob*p)
40 daddy_grav_l ()->typeset_grob (p);
44 Engraver_group_engraver*
45 Engraver::daddy_grav_l () const
47 return (daddy_trans_l_)
48 ? dynamic_cast<Engraver_group_engraver *> (daddy_trans_l_)
49 : 0;
52 void
53 Engraver::process_music ()