]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/music-output-def.hh
8015d6079041c6b33e3c7cd3dfc7c2354a7bf788
[lilypond.git] / lily / include / music-output-def.hh
1 /*
2   music-output-def.hh -- declare Music_output_def
3
4   source file of the GNU LilyPond music typesetter
5
6   (c)  1997--2002 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9
10 #ifndef Music_output_DEF_HH
11 #define Music_output_DEF_HH
12
13 #include "string.hh"
14 #include "lily-proto.hh"
15 #include "lily-guile.hh"
16 #include "virtual-methods.hh"
17 #include "smobs.hh"
18
19 /**
20   Definition of how to output lilypond.
21
22   TODO: smobify, remove Music_output_def_identifier.
23
24   TODO: remove Scope structure. Scheme_hash_table has all the info.
25  */
26 class Music_output_def  
27 {
28 public:
29   Scheme_hash_table * translator_tab_;
30   Scheme_hash_table * variable_tab_;  
31
32   Scope *translator_p_dict_p_;
33   Scope *scope_p_;
34
35   SCM scaled_fonts_;
36   SCM style_sheet_;
37   
38   VIRTUAL_COPY_CONS (Music_output_def);
39   Music_output_def (Music_output_def const&);
40   Music_output_def ();
41   virtual int get_next_score_count () const;
42
43   Global_translator *get_global_translator_p ();
44   Translator_group *get_group_translator_p (String type) const;
45   void assign_translator (SCM transdef);
46   SCM find_translator_l (SCM name) const;
47   String outname_str () ;
48   
49   DECLARE_SMOBS (Music_output_def,);
50 };
51
52 DECLARE_UNSMOB(Music_output_def,music_output_def);
53 #endif // Music_output_DEF_HH