]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/engraver-group-engraver.hh
2003 -> 2004
[lilypond.git] / lily / include / engraver-group-engraver.hh
1
2 /*
3   engraver-group-engraver.hh -- declare Engraver_group_engraver
4
5   source file of the GNU LilyPond music typesetter
6
7   (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
8 */
9
10
11 #ifndef ENGRAVERGROUP_HH
12 #define ENGRAVERGROUP_HH
13
14 #include "lily-proto.hh"
15 #include "parray.hh"
16 #include "grob-info.hh"
17 #include "engraver.hh"
18 #include "translator-group.hh"
19
20
21 /**
22   Group a number of engravers. Usually delegates everything to its contents.
23   Postfix: group
24   */
25 class Engraver_group_engraver : public Engraver,
26                                 public virtual Translator_group
27 {
28 protected:
29   Array<Grob_info> announce_infos_;
30
31   
32   
33 public:
34   TRANSLATOR_DECLARATIONS(Engraver_group_engraver);
35
36   virtual void initialize ();
37   virtual void do_announces ();
38   virtual void announce_grob (Grob_info);
39   virtual void process_music ();
40 private:
41   virtual void acknowledge_grobs ();
42   virtual void process_acknowledged_grobs_in_simple_children ();
43 };
44
45 #endif // ENGRAVERGROUP_HH
46
47