X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fpaper-score.hh;h=3d4d5840e1f075481c8d20b060353c7bfca9f633;hb=91723da7360b372904979b2d572f3f941ebbc924;hp=f6db4de5753b4a15728708c2c41e99896c1c1b84;hpb=1b401824fa6fa77ba5ba52cc9b1735a9aa43eb20;p=lilypond.git diff --git a/lily/include/paper-score.hh b/lily/include/paper-score.hh index f6db4de575..3d4d5840e1 100644 --- a/lily/include/paper-score.hh +++ b/lily/include/paper-score.hh @@ -1,46 +1,60 @@ /* - paper-score.hh -- declare Paper_score + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 1996--2015 Han-Wen Nienhuys - (c) 1996--2004 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #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" -#include "protected-scm.hh" -/* PAPER output */ +/* LAYOUT output */ class Paper_score : public Music_output { -public: - Paper_def *paper_; + Output_def *layout_; System *system_; + SCM systems_; + SCM paper_systems_; - Paper_score (); + mutable vector cols_; + mutable vector break_indices_; + mutable vector break_ranks_; +public: + Paper_score (Output_def *); + + DECLARE_CLASSNAME (Paper_score); - int find_col_idx (Paper_column const *) const; - Link_array broken_col_range (Item const*, Item const*) const; - void typeset_line (System*); - void output (); + Output_def *layout () const; + System *root_system () const; + void typeset_system (System *); + vector calc_breaking (); + vector get_break_indices () const; + vector get_break_ranks () const; + vector get_columns () const; + SCM get_paper_systems (); protected: - virtual SCM process (String); + void find_break_indices () const; + virtual void process (); + virtual void derived_mark () const; private: - Protected_scm score_; - - void preprocess (); - void calc_idealspacing (); - Array calc_breaking (); - void postprocess (); - Paper_score (Paper_score const &); + Paper_score (Paper_score const &); // Do not define! Not copyable! }; #endif /* PAPER_SCORE_HH */