]> git.donarmstrong.com Git - lilypond.git/commit
Bookmarking labels and page referencing:
authorNicolas Sceaux <nicolas.sceaux@free.fr>
Mon, 28 May 2007 17:37:57 +0000 (19:37 +0200)
committerNicolas Sceaux <nicolas.sceaux@free.fr>
Mon, 28 May 2007 17:37:57 +0000 (19:37 +0200)
commit291f1d623e2ceb9916532622ba02b02807c4b22d
treef7dec9d49770be01e3dc7898527805a8658f176e
parent0fb197ec6a219380241f620443292a7eeb2ffb99
Bookmarking labels and page referencing:

 - the \label command can be used at top-level (Page_marker) or inside
   music (LabelEvent);

 - for labels inside music: the paper_column_engraver handles
   label-events and fills the labels property of the paper column;

 - for top-level labels: Paper_book::get_system_specs() fill the labels
   property of the previous prob or of the first column of the previous
   paper_score;

 - when systems are built, the labels of their columns are collected to
   set the system labels property;

 - in Page_breaking::make_pages(), a label->page-number table is built,
   and stored in a variable of the paper_book paper;

 - the \page-ref markup command accesses the table though its layout
   argument. The actual evaluation of the stencil is postponed to the
   layout output phase using a new stencil command:
   delayed-stencil-evaluation;

 - a MARKUP_HEAD_SCM0_MARKUP1_MARKUP2 token has been added to the
   parser for this new markup command.
18 files changed:
input/regression/page-label.ly [new file with mode: 0644]
lily/include/page-marker.hh
lily/include/paper-column-engraver.hh
lily/lexer.ll
lily/page-breaking.cc
lily/page-marker-scheme.cc
lily/page-marker.cc
lily/paper-book.cc
lily/paper-column-engraver.cc
lily/parser.yy
lily/stencil-interpret.cc
lily/system.cc
ly/music-functions-init.ly
scm/define-event-classes.scm
scm/define-markup-commands.scm
scm/define-music-types.scm
scm/define-stencil-commands.scm
scm/lily-library.scm