]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/paper-column-engraver.hh
* lily/include/translator.icc (ADD_ACKNOWLEDGER): new macro.
[lilypond.git] / lily / include / paper-column-engraver.hh
1 /*
2   paper-column-engraver.hh -- declare Paper_column_engraver
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
7
8 */
9
10 #ifndef PAPER_COLUMN_ENGRAVER_HH
11 #define PAPER_COLUMN_ENGRAVER_HH
12
13
14 #include "engraver.hh"
15
16
17 class Paper_column_engraver : public Engraver
18 {
19   void make_columns ();
20   void set_columns (Paper_column*, Paper_column*); 
21   TRANSLATOR_DECLARATIONS(Paper_column_engraver);
22
23 protected:
24   PRECOMPUTED_VIRTUAL void stop_translation_timestep ();
25   PRECOMPUTED_VIRTUAL void start_translation_timestep ();
26   PRECOMPUTED_VIRTUAL void process_music ();
27   virtual void initialize ();
28   virtual void finalize ();
29   virtual bool try_music (Music*);
30
31   DECLARE_ACKNOWLEDGER(item);
32   DECLARE_ACKNOWLEDGER(note_spacing);
33   DECLARE_ACKNOWLEDGER(staff_spacing);
34
35   System *system_;
36   Music *break_event_;
37   int breaks_;                  // used for stat printing
38   Paper_column *command_column_;
39   Paper_column *musical_column_;
40   Link_array<Item> items_;
41   bool first_;
42   Moment last_moment_;
43 public:
44   // ug.h 
45   void forbid_breaks ();
46
47 };
48
49 #endif /* PAPER_COLUMN_ENGRAVER_HH */