]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/page.hh
c0f929432e32ffbc36ef515cd05abce7468970bd
[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   static int page_count_;
22   static Real MIN_COVERAGE_;
23   Paper_def *paper_;
24   int number_;
25   int line_count_;
26   SCM lines_;
27   SCM header_;
28   SCM footer_;
29   SCM copyright_;
30   SCM tagline_;
31
32   /* actual height filled with text.  */
33   Real height_;
34   
35   // HMMM all this size stuff to paper/paper-outputter?
36   Real vsize_;
37   Real top_margin_;
38   Real bottom_margin_;
39
40   Page (Paper_def*, int);
41
42   /* available area for text.  */
43   Real text_height () const;
44   Real left_margin () const;
45   SCM to_stencil () const;
46 };
47
48 DECLARE_UNSMOB (Page, page);
49
50 #endif /* PAGE_HH */