X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fpaper-score.hh;h=ac1b76208940b33386aacd5c4a39a960f36d98e8;hb=89f0e26fa758e6f2a05e64f9186fa5bc5c90d581;hp=9938895086d0ef2d71dc1dea726c11f0faae8433;hpb=bb36bac02a64770871780231ecc709cb18b20932;p=lilypond.git diff --git a/lily/include/paper-score.hh b/lily/include/paper-score.hh index 9938895086..ac1b762089 100644 --- a/lily/include/paper-score.hh +++ b/lily/include/paper-score.hh @@ -3,80 +3,45 @@ source file of the GNU LilyPond music typesetter - (c) 1996, 1997--2000 Han-Wen Nienhuys + (c) 1996--2007 Han-Wen Nienhuys */ - -#ifndef P_SCORE_HH -#define P_SCORE_HH +#ifndef PAPER_SCORE_HH +#define PAPER_SCORE_HH #include "column-x-positions.hh" -#include "parray.hh" -#include "lily-proto.hh" #include "music-output.hh" -#include "lily-guile.hh" - -/** all stuff which goes onto paper. notes, signs, symbols in a score - #Paper_score# contains the items, the columns. - - */ +/* LAYOUT output */ class Paper_score : public Music_output { - SCM element_smob_list_; -public: - Paper_def *paper_l_; + Output_def *layout_; + System *system_; + SCM systems_; + SCM paper_systems_; - /// the columns, ordered left to right - /* - UGH. MOVE INTO LINE_OF_SCORE ?! - */ - Link_array col_l_arr_; - - Paper_outputter *outputter_l_; - Line_of_score * line_l_; + mutable vector cols_; + mutable vector break_indices_; +public: + Paper_score (Output_def *); - Paper_score (); - - void fixup_refpoints (); + DECLARE_CLASSNAME(Paper_score); + Output_def *layout () const; + System *root_system () const; - /// add to bottom of pcols - void add_column (Paper_column*); - - /** - @return index of argument. - */ - int find_col_idx (Paper_column const *) const; - - Link_array broken_col_range (Item const*,Item const*) const; - - - /* STANDARD ROUTINES */ - void print() const; - - void typeset_element (Score_element*); - void typeset_broken_spanner (Spanner*); - /// add a Spanner - void typeset_unbroken_spanner (Spanner*); - - - virtual ~Paper_score(); + void typeset_system (System *); + vector calc_breaking (); + vector find_break_indices () const; + vector get_break_indices () const; + vector get_columns () const; + SCM get_paper_systems (); protected: - /* MAIN ROUTINES */ - virtual void process(); + virtual void process (); + virtual void derived_mark () const; private: - /// before calc_breaking - void preprocess(); - - void calc_idealspacing(); - /// calculate where the lines are to be broken, and use results - Array calc_breaking(); - - /// after calc_breaking - void postprocess(); Paper_score (Paper_score const &); }; -#endif +#endif /* PAPER_SCORE_HH */