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