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