X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fpaper-book-scheme.cc;h=01fa9da459b2f24a7b59d0cfe7fd52844c03b133;hb=a6a51abfd0195a3cf7d6ea095cf69808852f21ce;hp=d9832e4c0e2dd47b0e0cd17aad2aa812a48a03ec;hpb=728c1f61013a32153c647a72ca31bc2353754803;p=lilypond.git diff --git a/lily/paper-book-scheme.cc b/lily/paper-book-scheme.cc index d9832e4c0e..01fa9da459 100644 --- a/lily/paper-book-scheme.cc +++ b/lily/paper-book-scheme.cc @@ -1,62 +1,83 @@ /* - paper-book-scheme.cc -- implement Paper_book bindings + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 2005--2015 Han-Wen Nienhuys - (c) 2005--2007 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "paper-book.hh" -#include "ly-module.hh" #include "output-def.hh" LY_DEFINE (ly_paper_book_pages, "ly:paper-book-pages", - 1, 0, 0, (SCM pb), - "Return pages in book @var{pb}.") + 1, 0, 0, (SCM pb), + "Return pages in @code{Paper_book} object @var{pb}.") { LY_ASSERT_SMOB (Paper_book, pb, 1); - return unsmob_paper_book (pb)->pages (); + return unsmob (pb)->pages (); } LY_DEFINE (ly_paper_book_scopes, "ly:paper-book-scopes", - 1, 0, 0, (SCM book), - "Return scopes in layout book @var{book}.") + 1, 0, 0, (SCM pb), + "Return scopes in @code{Paper_book} object @var{pb}.") { - LY_ASSERT_SMOB (Paper_book, book, 1); - Paper_book *pb = unsmob_paper_book (book); + LY_ASSERT_SMOB (Paper_book, pb, 1); + Paper_book *book = unsmob (pb); SCM scopes = SCM_EOL; - if (pb->parent_) + if (book->parent_) { - scopes = ly_paper_book_scopes (pb->parent_->self_scm ()); + scopes = ly_paper_book_scopes (book->parent_->self_scm ()); } - if (ly_is_module (pb->header_)) - scopes = scm_cons (pb->header_, scopes); + if (ly_is_module (book->header_)) + scopes = scm_cons (book->header_, scopes); return scopes; } LY_DEFINE (ly_paper_book_performances, "ly:paper-book-performances", - 1, 0, 0, (SCM paper_book), - "Return performances in book @var{paper-book}.") + 1, 0, 0, (SCM pb), + "Return performances in @code{Paper_book} object @var{pb}.") { - LY_ASSERT_SMOB (Paper_book, paper_book, 1); - return unsmob_paper_book (paper_book)->performances (); + LY_ASSERT_SMOB (Paper_book, pb, 1); + return unsmob (pb)->performances (); } LY_DEFINE (ly_paper_book_systems, "ly:paper-book-systems", - 1, 0, 0, (SCM pb), - "Return systems in book @var{pb}.") + 1, 0, 0, (SCM pb), + "Return systems in @code{Paper_book} object @var{pb}.") { LY_ASSERT_SMOB (Paper_book, pb, 1); - return unsmob_paper_book (pb)->systems (); + return unsmob (pb)->systems (); } LY_DEFINE (ly_paper_book_paper, "ly:paper-book-paper", - 1, 0, 0, (SCM pb), - "Return pages in book @var{pb}.") + 1, 0, 0, (SCM pb), + "Return the paper output definition (@code{\\paper})" + " in @code{Paper_book} object @var{pb}.") { LY_ASSERT_SMOB (Paper_book, pb, 1); - Paper_book *pbook = unsmob_paper_book (pb); + Paper_book *pbook = unsmob (pb); return pbook->paper_->self_scm (); } + +LY_DEFINE (ly_paper_book_header, "ly:paper-book-header", + 1, 0, 0, (SCM pb), + "Return the header definition (@code{\\header})" + " in @code{Paper_book} object @var{pb}.") +{ + LY_ASSERT_SMOB (Paper_book, pb, 1); + Paper_book *pbook = unsmob (pb); + return pbook->header_; +}