]> git.donarmstrong.com Git - lilypond.git/blob - lily/engraver.cc
release: 1.5.13
[lilypond.git] / lily / engraver.cc
1 /*
2   engraver.cc -- implement Engraver
3
4   Sourcefile of GNU LilyPond music type setter
5
6   (c)  1997--2001 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9 #include "music.hh"
10 #include "engraver.hh"
11 #include "engraver-group-engraver.hh"
12 #include "grob.hh"
13 #include "main.hh"
14
15
16 void
17 Engraver::announce_grob (Grob_info inf)
18 {
19   daddy_grav_l ()->announce_grob (inf);
20 }
21
22 void
23 Engraver::announce_grob (Grob* e, Music *m)
24 {
25   if (m && store_locations_global_b 
26       && m->origin ()->location_str ().length_i ())
27     {
28       e->set_grob_property ("origin", m->get_mus_property ("origin"));
29     }
30   
31   Grob_info i (e, m);
32   if (!i.origin_trans_l_)
33     i.origin_trans_l_ = this;
34   daddy_grav_l ()->announce_grob (i);
35 }
36
37
38  
39 void
40 Engraver::typeset_grob (Grob*p)
41 {
42   daddy_grav_l ()->typeset_grob (p);
43 }
44
45
46 Engraver_group_engraver*
47 Engraver::daddy_grav_l () const
48 {
49   return (daddy_trans_l_)
50        ? dynamic_cast<Engraver_group_engraver *> (daddy_trans_l_)
51        : 0;
52 }
53
54 void
55 Engraver::process_music ()
56 {
57   
58 }
59
60 Engraver::Engraver()
61 {
62 }
63
64
65 ENTER_DESCRIPTION(Engraver,
66                    "", "", "", "", "");