source file of the GNU LilyPond music typesetter
- (c) 2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
-
+ (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
#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 ();
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_ACKNOWLEDGER (item);
+ DECLARE_ACKNOWLEDGER (note_spacing);
+ DECLARE_ACKNOWLEDGER (staff_spacing);
System *system_;
- Music *break_event_;
+ vector<Stream_event*> break_events_;
int breaks_; // used for stat printing
Paper_column *command_column_;
Paper_column *musical_column_;
- Link_array<Item> items_;
+ vector<Item*> items_;
bool first_;
Moment last_moment_;
-public:
- // ug.h
- void forbid_breaks ();
+public:
};
#endif /* PAPER_COLUMN_ENGRAVER_HH */