]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/paper-book.hh
3bad2b32b8690d2fefa025d775f1d752c8ae11c2
[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 /** Paper_book collects headers, systems (Paper_system) and texts, and
19     exports them to the output backend, either as systems or as
20     completely formatted pages.  */
21
22 class Paper_book
23 {
24   DECLARE_SMOBS (Paper_book,);
25
26   SCM systems_;
27   SCM pages_;
28   SCM performances_;
29
30   void add_score_title (SCM);
31 public:
32   SCM header_;
33   SCM header_0_;
34   SCM scores_;
35   Output_def *paper_;
36
37   Paper_book ();
38
39   void add_score (SCM);
40   void add_performance (SCM);
41
42   SCM performances () const;
43   SCM systems ();
44   SCM pages ();
45   Stencil book_title ();
46   Stencil score_title (SCM);
47   void classic_output (SCM output_channel);
48   void output (SCM output_channel);
49 };
50
51 DECLARE_UNSMOB (Paper_book, paper_book)
52
53 #endif /* PAPER_BOOK_HH */