]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/translator-group.hh
7a41f6e2ed5845f23a81ceff7f92c0442135c1c8
[lilypond.git] / lily / include / translator-group.hh
1 /*
2   translator-group.hh -- declare Translator_group
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1997--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9
10 #ifndef TRANSLATOR_GROUP_HH
11 #define TRANSLATOR_GROUP_HH
12
13 #include "translator.hh"
14 #include "parray.hh"
15
16 typedef void (Translator::*Translator_method) (void);
17
18 class Translator_group : public virtual Translator
19 {
20 public:
21   VIRTUAL_COPY_CONSTRUCTOR (Translator, Translator_group);
22   virtual Translator_group* get_daddy_translator ()const;
23   virtual SCM get_simple_trans_list ();
24   virtual bool try_music (Music* req);       
25   virtual void initialize ();
26   Translator_group ();
27
28 protected:
29   SCM simple_trans_list_;
30   friend class Context_def;
31   virtual void derived_mark () const;
32 };
33
34 SCM names_to_translators (SCM namelist, Context*tg);
35 void recurse_over_translators (Context * c, Translator_method ptr, Direction);
36 void translator_each (SCM list, Translator_method method);
37
38
39 #endif // TRANSLATOR_GROUP_HH