]> git.donarmstrong.com Git - lilypond.git/commit
Book parts: nestable book parts
authorNicolas Sceaux <nicolas.sceaux@free.fr>
Sat, 23 Aug 2008 16:34:30 +0000 (18:34 +0200)
committerNicolas Sceaux <nicolas.sceaux@free.fr>
Sat, 23 Aug 2008 16:34:30 +0000 (18:34 +0200)
commitdbefd4b8d0249c6a739d09118f3e0a71001c1c52
tree287ef89145bf8f6523c7e4df978216ed782d18d4
parenta87554b9359cf208435bb5c6269ed1a2c6730fe4
Book parts: nestable book parts

- Book and Paper_book instances respectively are nestable: children
  book or paper_book are added to the bookparts_ slot;

- the paper_ slot of a child Book (or Book_paper) is created empty,
  and has its parent set to the paper object of the parent Book (or
  Paper_book), so that default paper properties are got from the
  higher level paper object, and child objects only store part-wide
  overrides. This way, we ensure that fonts are loaded in the higher
  level paper object, so that the output framework can get all the
  loaded fonts from the top level book;

- a Paper_book::top_paper() method is added to access the higher level
  paper object, to access properties that are book-wide, for instance
  the table used to store labels and page numbers;

- in the parser, \bookpart blocks are introduced, which can be used at
  toplevel, or inside a \book block. It can contain the same things as
  \book blocks (except \bookpart blocks, though that would be
  possible). The associated handlers are added.
15 files changed:
input/regression/bookparts.ly [new file with mode: 0644]
lily/book-scheme.cc
lily/book.cc
lily/include/book.hh
lily/include/paper-book.hh
lily/lily-lexer.cc
lily/minimal-page-breaking.cc
lily/optimal-page-breaking.cc
lily/page-breaking.cc
lily/page-turn-page-breaking.cc
lily/paper-book.cc
lily/parser.yy
ly/declarations-init.ly
ly/init.ly
scm/lily-library.scm