]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/paper-system.hh
(struct Simple_spacer): remove
[lilypond.git] / lily / include / paper-system.hh
1 /*
2   paper-system.hh -- declare Paper_system
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 2004  Jan Nieuwenhuizen <janneke@gnu.org>
7 */
8 #ifndef PAPER_SYSTEM_HH
9 #define PAPER_SYSTEM_HH
10
11 #include "lily-proto.hh"
12 #include "smobs.hh"
13 #include "offset.hh"
14 #include "stencil.hh"
15
16 /*
17   A formatted "system" (A block of titling also is a Paper_system)
18
19   To save memory, we don't keep around the System grobs, but put the
20   formatted content of the grob is put into a
21   Paper_system. Page-breaking handles Paper_system objects.
22   
23  */
24 class Paper_system
25 {
26   DECLARE_SMOBS (Paper_system, );
27   Stencil stencil_;
28   bool is_title_;
29 public:
30   Interval staff_refpoints_;
31   Real penalty_;
32   int number_;
33
34   Paper_system (Stencil, bool);
35
36   Offset dim () const;
37   Stencil to_stencil () const;
38   SCM stencils () const;
39   bool is_title () const;
40   Real penalty () const;
41 };
42
43 DECLARE_UNSMOB (Paper_system, paper_system);
44
45 #endif /* PAPER_SYSTEM_HH */