]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/paper-system.hh
* lily/book.cc (process): bugfix: flip ?: cases.
[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--2005  Jan Nieuwenhuizen <janneke@gnu.org>
7 */
8 #ifndef PAPER_SYSTEM_HH
9 #define PAPER_SYSTEM_HH
10
11 #include "stencil.hh"
12
13 /*
14   A formatted "system" (A block of titling also is a Paper_system)
15
16   To save memory, we don't keep around the System grobs, but put the
17   formatted content of the grob is put into a
18   Paper_system. Page-breaking handles Paper_system objects.
19 */
20 class Paper_system
21 {
22   DECLARE_SMOBS (Paper_system,);
23   Stencil stencil_;
24   bool is_title_;
25   SCM details_;
26 public:
27   Interval staff_refpoints_;
28   Real break_before_penalty_;
29   int number_;
30
31   Paper_system (Stencil, bool);
32   void read_left_bound (Item*);
33   Stencil to_stencil () const;
34   SCM stencils () const;
35   SCM internal_get_property (SCM sym) const;
36   bool is_title () const;
37   Real break_before_penalty () const;
38   Interval staff_refpoints () const;
39 };
40
41 DECLARE_UNSMOB (Paper_system, paper_system);
42
43 #endif /* PAPER_SYSTEM_HH */