]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/engraver-group-engraver.hh
be4e7d9a30dc96dc1170d9f9e9866659c37d822d
[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--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
8 */
9
10
11 #ifndef ENGRAVERGROUP_HH
12 #define ENGRAVERGROUP_HH
13
14 #include "engraver.hh"
15 #include "translator-group.hh"
16
17
18 class Engraver_group_engraver : public virtual Engraver,
19                                 public virtual Translator_group
20 {
21 protected:
22   Array<Grob_info> announce_infos_;
23   
24 public:
25   TRANSLATOR_DECLARATIONS(Engraver_group_engraver);
26
27   virtual void initialize ();
28   virtual void do_announces ();
29   virtual void announce_grob (Grob_info);
30
31   int pending_grob_count () const;
32 private:
33   virtual void acknowledge_grobs ();
34 };
35
36 typedef void (Engraver::*Engraver_method) (void);
37
38 void engraver_each (SCM list, Engraver_method method);
39
40 #endif // ENGRAVERGROUP_HH
41
42