]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/page.hh
152f612a55e6bcb75148510714bf65e6e7b39a38
[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 class Page
16 {
17   DECLARE_SMOBS (Page, );
18
19 public:
20   static int page_count_;
21   Paper_def *paper_;
22   int number_;
23   int line_count_;
24   SCM lines_;
25   SCM header_;
26   SCM footer_;
27   SCM copyright_;
28   SCM tagline_;
29
30   /* actual height filled with text.  */
31   Real height_;
32   
33   // HMMM all this size stuff to paper/paper-outputter?
34   Real hsize_;
35   Real vsize_;
36   Real left_margin_;
37   Real top_margin_;
38   Real bottom_margin_;
39   Real foot_sep_;
40   Real head_sep_;
41   Real text_width_;
42
43   /* available area for text.  */
44   Real text_height ();
45
46   Page (Paper_def*, int);
47   void output (Paper_outputter*, bool);
48 };
49
50 DECLARE_UNSMOB (Page, page);
51
52 #endif /* PAGE_HH */