]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/page.hh
e082b6ab1837f9ec99674e8ae6365ecde7ae8c44
[lilypond.git] / lily / include / page.hh
1 /*
2   page.hh -- declare Page
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 2004  Jan Nieuwenhuizen <janneke@gnu.org>
7 */
8 #ifndef PAGE_HH
9 #define PAGE_HH
10
11 #include "lily-proto.hh"
12 #include "smobs.hh"
13
14 /* WIP -- moving toward flexible stencil based output.
15    Rename to Paper_page? */
16 class Page
17 {
18   DECLARE_SMOBS (Page, );
19
20 public:
21   Paper_def *paper_;            // todo: make private? 
22   Book_paper_def * bookpaper () const;
23   static int page_count_;
24   static Real MIN_COVERAGE_;
25   int number_;
26   int line_count_;
27   SCM lines_;
28   SCM header_;
29   SCM footer_;
30   SCM copyright_;
31   SCM tagline_;
32
33   /* actual height filled with text.  */
34   Real height_;
35   
36   // HMMM all this size stuff to paper/paper-outputter?
37   Real vsize_;
38   Real top_margin_;
39   Real bottom_margin_;
40
41   Page (Paper_def*, int);
42
43   /* available area for text.  */
44   Real text_height () const;
45   Real left_margin () const;
46   Stencil to_stencil () const;
47 };
48
49 DECLARE_UNSMOB (Page, page);
50
51 #endif /* PAGE_HH */