X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Finclude%2Fpaper-column-engraver.hh;h=3249432b40053ee4d0aec471396fd5c26b5cc040;hb=60daf523bf18da7f805f4b050135ab0838161cf6;hp=dae914de8a64ecf90cca2af75800f4f168196a7c;hpb=83ed05cef3bfcbd69f4148e8ee0669ca0664e214;p=lilypond.git diff --git a/lily/include/paper-column-engraver.hh b/lily/include/paper-column-engraver.hh index dae914de8a..3249432b40 100644 --- a/lily/include/paper-column-engraver.hh +++ b/lily/include/paper-column-engraver.hh @@ -1,49 +1,66 @@ /* - paper-column-engraver.hh -- declare Paper_column_engraver + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 2005--2012 Han-Wen Nienhuys - (c) 2005 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_COLUMN_ENGRAVER_HH #define PAPER_COLUMN_ENGRAVER_HH - #include "engraver.hh" - +#include "listener.hh" +#include "moment.hh" +#include "stream-event.hh" class Paper_column_engraver : public Engraver { void make_columns (); - void set_columns (Paper_column*, Paper_column*); - TRANSLATOR_DECLARATIONS(Paper_column_engraver); + void set_columns (Paper_column *, Paper_column *); + TRANSLATOR_DECLARATIONS (Paper_column_engraver); + + Paper_column *find_turnable_column (Moment after_this); + void revoke_page_turns (Moment after_this, Real new_penalty); protected: - PRECOMPUTED_VIRTUAL void stop_translation_timestep (); - PRECOMPUTED_VIRTUAL void start_translation_timestep (); - PRECOMPUTED_VIRTUAL void process_music (); + void stop_translation_timestep (); + void start_translation_timestep (); + void process_music (); + void handle_manual_breaks (bool); virtual void initialize (); virtual void finalize (); - virtual bool try_music (Music*); - DECLARE_ACKNOWLEDGER(item); - DECLARE_ACKNOWLEDGER(note_spacing); - DECLARE_ACKNOWLEDGER(staff_spacing); + DECLARE_TRANSLATOR_LISTENER (break); + DECLARE_TRANSLATOR_LISTENER (label); + + DECLARE_ACKNOWLEDGER (item); + DECLARE_ACKNOWLEDGER (note_spacing); + DECLARE_ACKNOWLEDGER (staff_spacing); System *system_; - Music *break_event_; - int breaks_; // used for stat printing + vector break_events_; + vector label_events_; + int breaks_; // used for stat printing Paper_column *command_column_; Paper_column *musical_column_; - Link_array items_; + vector items_; bool first_; + bool made_columns_; Moment last_moment_; -public: - // ug.h - void forbid_breaks (); +public: }; #endif /* PAPER_COLUMN_ENGRAVER_HH */