X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Foutput-def.hh;h=c7c4248ea4bb3a1a9ac4969ef46a8cead4495687;hb=89b76c367754570218e76a116127225f89f41212;hp=4b2bf9c3e48151274f101075380c497e0cadfc9e;hpb=77e6cefa9c65766577402009987a30140c31dfe9;p=lilypond.git diff --git a/lily/include/output-def.hh b/lily/include/output-def.hh index 4b2bf9c3e4..c7c4248ea4 100644 --- a/lily/include/output-def.hh +++ b/lily/include/output-def.hh @@ -3,15 +3,13 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2004 Han-Wen Nienhuys + (c) 1997--2008 Han-Wen Nienhuys */ #ifndef MUSIC_OUTPUT_DEF_HH #define MUSIC_OUTPUT_DEF_HH -#include "string.hh" #include "lily-proto.hh" -#include "lily-guile.hh" #include "virtual-methods.hh" #include "smobs.hh" #include "input.hh" @@ -21,10 +19,10 @@ This devolved into a rather empty class. The distinction between various instances is made in the parser, which creates - midi/paper/bookpaper blocks depending on the keyword read. + midi/layout/paper blocks depending on the keyword read. The data structure is set up as recursive: the definitions not - supplied in paper are looked up in bookpaper. This is done through + supplied in layout are looked up in paper. This is done through the parent_ field of Output_def. However, such nesting is limited to two levels, @@ -32,52 +30,53 @@ of output block. * Second, because the prime benefit of multiple levels - (eg. bookpaper containing paper for a score, containing paper of a + (eg. paper containing layout for a score, containing layout of a \score embedded in \markup) requires scaling the Stencils (eg. the one coming from score at markup level) */ class Output_def { + public: VIRTUAL_COPY_CONSTRUCTOR (Output_def, Output_def); - DECLARE_SMOBS (Output_def,); + DECLARE_SMOBS (Output_def); + public: SCM scope_; - Output_def * parent_; + Output_def *parent_; + Input input_origin_; + string user_key_; Output_def (Output_def const&); Output_def (); - virtual void derived_mark (); - + /* variables. */ - SCM c_variable (String id) const; + SCM c_variable (string id) const; SCM lookup_variable (SCM sym) const; void set_variable (SCM sym, SCM val); Real get_dimension (SCM symbol) const; }; - +SCM get_font_table (Output_def *def); void assign_context_def (Output_def *m, SCM transdef); SCM find_context_def (Output_def const *m, SCM name); -int get_tempo (Output_def*def, Moment moment); -void set_tempo (Output_def*def, Moment moment, int count_per_minute_i); - Interval line_dimensions_int (Output_def*def, int); -Font_metric *select_encoded_font (Output_def *paper, SCM input_encoding, SCM chain); -Font_metric *select_font (Output_def *paper, SCM chain); +Font_metric *select_encoded_font (Output_def *layout, SCM chain); +Font_metric *select_font (Output_def *layout, SCM chain); DECLARE_UNSMOB (Output_def, output_def); -Font_metric *find_scaled_font (Output_def * od, - Font_metric *f, Real m, SCM input_enc_name); +Font_metric* find_pango_font (Output_def *layout, SCM descr, Real factor); +Font_metric *find_scaled_font (Output_def *od, Font_metric *f, Real magnification); Output_def *scale_output_def (Output_def *def, Real scale); + Real output_scale (Output_def*); #endif /* MUSIC_OUTPUT_DEF_HH */