X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fpaper-def.hh;h=5987e6527f46838c209371eeff688f60c2b081ef;hb=47b1c9fddeec6d243c4df9d66ab71969bdee7b2f;hp=ae557258b082a4eb2ff6a706b08e34a8f2c275bf;hpb=daee8243ff1c66bc714455a2d265ab02f03546ec;p=lilypond.git diff --git a/lily/include/paper-def.hh b/lily/include/paper-def.hh index ae557258b0..5987e6527f 100644 --- a/lily/include/paper-def.hh +++ b/lily/include/paper-def.hh @@ -1,54 +1,81 @@ /* - paper-def.hh -- declare + paper-def.hh -- declare Paper_def - source file of the LilyPond music typesetter + source file of the GNU LilyPond music typesetter - (c) 1997 Han-Wen Nienhuys + (c) 1996--2002 Han-Wen Nienhuys */ -#ifndef Paper_def_HH -#define Paper_def_HH -#include "proto.hh" +#ifndef PAPER_DEF_HH +#define PAPER_DEF_HH + + +#include "lily-proto.hh" +#include "lily-guile.hh" #include "real.hh" -#include "string.hh" -#include "moment.hh" +#include "array.hh" +#include "interval.hh" +#include "music-output-def.hh" -/** symbols, dimensions and constants +/** + + Symbols, dimensions and constants pertaining to visual output. This struct takes care of all kinds of symbols, dimensions and - constants. Most of them are related to the point-size of the fonts, - so therefore, the lookup table for symbols is also in here. - - see TODO - */ -struct Paper_def { - Lookup *lookup_p_; - String outfile; - - Real linewidth; - - /// how much space does a whole note take (ideally?) - Real whole_width; - - /// ideal = geometric_ ^ log2(duration) - Real geometric_; - - /* *************** */ - void reinit(); - Paper_def(Lookup*); - void set(Lookup*); - ~Paper_def(); - Paper_def(Paper_def const&); - Real interline()const; - Real internote()const; - Real rule_thickness()const; - Real standard_height()const; - Real note_width() const; - void print() const; - Real duration_to_dist(Moment); + constants. Most of them are related to the point-size of the fonts, + so therefore, the lookup table for symbols is also in here. + + TODO: + + add support for multiple fontsizes + + remove all utility funcs + + + add support for other len->wid conversions. + + + Interesting variables: + + /// The distance between lines + interline + +*/ +class Paper_def : public Music_output_def +{ +protected: + VIRTUAL_COPY_CONS (Music_output_def); + + +public: + SCM font_descriptions ()const; + virtual ~Paper_def (); + static int score_count_i_; + + /* + JUNKME + */ + Real get_realvar (SCM symbol) const; + Real get_var (String id) const; + SCM get_scmvar (String id)const; + SCM get_scmvar_scm (SCM sym) const; + void reinit (); + Paper_def (); + Paper_def (Paper_def const&); + + Interval line_dimensions_int (int) const; + + virtual int get_next_score_count () const; + static void reset_score_count (); + void output_settings (Paper_outputter*) const; + Paper_outputter* paper_outputter_p () ; + + Font_metric * find_font (SCM name, Real mag); + + // urg + friend int yyparse (void*); }; #endif // Paper_def_HH -