]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/paper-def.hh
release: 0.0.42.pre3
[lilypond.git] / lily / include / paper-def.hh
1 /*
2   paper-def.hh -- declare 
3
4   source file of the LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9
10 #ifndef Paper_def_HH
11 #define Paper_def_HH
12 #include "proto.hh"
13 #include "real.hh"
14 #include "string.hh"
15 #include "moment.hh"
16
17
18 /** symbols, dimensions and constants
19
20   This struct takes care of all kinds of symbols, dimensions and
21  constants. Most of them are related to the point-size of the fonts,
22  so therefore, the lookup table for symbols is also in here.
23
24  */
25 class Paper_def {
26     Lookup *lookup_p_;
27 public:    
28     String outfile;
29
30     Real linewidth;
31
32     /// how much space does a whole note take (ideally?)
33     Real whole_width;
34
35     /// ideal = geometric_ ^ log2(duration)
36     Real geometric_;
37     
38     /* *************** */
39     void reinit();
40     Paper_def(Lookup*);
41     void set(Lookup*);
42     ~Paper_def();
43     Paper_def(Paper_def const&);
44     Real interline()const;
45     Real internote()const;
46     Real rule_thickness()const;
47     Real standard_height()const;
48     Real note_width() const;
49     void print() const;
50     Lookup const * lookup_l();  // TODO naming
51     Real duration_to_dist(Moment);
52 };
53
54 #endif // Paper_def_HH
55