]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/paper-book.hh
* Documentation/topdocs/NEWS.tely (Top): Mention markup text feature.
[lilypond.git] / lily / include / paper-book.hh
1 /*
2   paper-book.hh -- declare Paper_book
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 2004--2005  Jan Nieuwenhuizen <janneke@gnu.org>
7 */
8 #ifndef PAPER_BOOK_HH
9 #define PAPER_BOOK_HH
10
11 #include "parray.hh"
12 #include "protected-scm.hh"
13 #include "smobs.hh"
14
15 class Output_def;
16 class Stencil;
17
18 struct Score_systems
19 {
20   SCM systems_;
21   SCM header_;
22   SCM texts_;
23
24   Score_systems () ;
25   void gc_mark ();
26 };
27
28 /*
29   
30 This class is rather empty. It collects systems (Paper_system), and
31 exports them to the output backend, either as systems or as completely
32 formatted pages.
33   
34 */
35 class Paper_book
36 {
37   DECLARE_SMOBS (Paper_book, );
38
39   SCM systems_;
40   SCM pages_;
41 public:
42   SCM header_;
43   Array<Score_systems> score_systems_;
44   Output_def *paper_;
45   
46   Paper_book ();
47
48   SCM systems ();
49   SCM pages ();
50   Stencil book_title ();
51   Stencil score_title (int);
52   void classic_output (String);
53   void output (String);
54   void post_processing (SCM, SCM);
55 };
56
57 DECLARE_UNSMOB (Paper_book, paper_book)
58
59 #endif /* PAPER_BOOK_HH */
60