]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/translator-group.hh
* lily/translator.cc (derived_mark): new function.
[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--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9
10 #ifndef TRANSLATOR_GROUP_HH
11 #define TRANSLATOR_GROUP_HH
12
13 #include "string.hh"
14 #include "lily-proto.hh"
15 #include "virtual-methods.hh"
16 #include "translator.hh"
17 #include "parray.hh"
18 #include "smobs.hh"
19
20 typedef void (Translator::*Translator_method) (void);
21
22 class Translator_group : public virtual Translator
23 {
24 public:
25   VIRTUAL_COPY_CONSTRUCTOR (Translator, Translator_group);
26   virtual Translator_group* get_daddy_translator ()const;
27   virtual SCM get_simple_trans_list ();
28   virtual bool try_music (Music* req);       
29   virtual void initialize ();
30   Translator_group ();
31
32 protected:
33   SCM simple_trans_list_;
34   friend class Context_def;
35   virtual void derived_mark () const;
36 };
37
38 SCM names_to_translators (SCM namelist, Context*tg);
39 void recurse_over_translators (Context * c, Translator_method ptr, Direction);
40 void translator_each (SCM list, Translator_method method);
41
42
43 #endif // TRANSLATOR_GROUP_HH