2 paper-def.hh -- declare Paper_def
4 source file of the GNU LilyPond music typesetter
6 (c) 1996--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
14 #include "lily-proto.hh"
15 #include "lily-guile.hh"
18 #include "interval.hh"
19 #include "music-output-def.hh"
24 Symbols, dimensions and constants pertaining to visual output.
26 This struct takes care of all kinds of symbols, dimensions and
27 constants. Most of them are related to the point-size of the fonts,
28 so therefore, the lookup table for symbols is also in here.
32 add support for multiple fontsizes
34 remove all utility funcs
37 add support for other len->wid conversions.
40 Interesting variables:
42 /// The distance between lines
46 class Paper_def : public Music_output_def
49 VIRTUAL_COPY_CONSTRUCTOR (Music_output_def, Paper_def);
53 static int score_count_;
56 Paper_def (Paper_def const&);
57 virtual ~Paper_def ();
58 virtual void derived_mark ();
60 Paper_outputter* get_paper_outputter (String) const;
61 SCM font_descriptions () const;
63 Interval line_dimensions_int (int) const;
64 void output_settings (Paper_outputter*) const;
65 Font_metric *find_scaled_font (Font_metric *fm, Real mag, SCM enc_name);
66 Real get_dimension (SCM symbol) const;
68 friend int yyparse (void*);
71 Paper_def * unsmob_paper (SCM x);
72 Font_metric *select_encoded_font (Paper_def *paper, SCM input_encoding, SCM chain);
73 Font_metric *select_font (Paper_def *paper, SCM chain);
75 #endif /* PAPER_DEF_HH */