]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/engraver-group-engraver.hh
* lily/include/translator.hh (class Translator): remove
[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 #ifndef ENGRAVERGROUP_HH
11 #define ENGRAVERGROUP_HH
12
13 #include "engraver.hh"
14 #include "translator-group.hh"
15
16 class Engraver_group_engraver : public virtual Translator_group
17 {
18 protected:
19   Array<Grob_info> announce_infos_;
20   SCM acknowledge_hash_table_;
21 public:
22   VIRTUAL_COPY_CONSTRUCTOR ( Translator_group, Engraver_group_engraver);
23   Engraver_group_engraver ();
24   virtual void derived_mark () const;
25   void do_announces ();
26   virtual void announce_grob (Grob_info);
27   int pending_grob_count () const;
28 private:
29   virtual void acknowledge_grobs ();
30 };
31
32 typedef void (Engraver:: *Engraver_method) (void);
33
34 void engraver_each (SCM list, Engraver_method method);
35
36 #endif // ENGRAVERGROUP_HH
37
38