#include "dimensions.hh"
#include "ly-module.hh"
#include "page.hh"
-#include "paper-def.hh"
+#include "output-def.hh"
#include "paper-outputter.hh"
#include "paper-line.hh"
#include "stencil.hh"
#include "warn.hh"
-#include "book-paper-def.hh"
-int Page::page_count_ = 0;
-Real Page::MIN_COVERAGE_ = 0.66;
-Book_paper_def *
-Page::bookpaper () const
-{
- return paper_->bookpaper_;
-}
+Real Page::MIN_COVERAGE_ = 0.66;
-Page::Page (Paper_def *paper, int number)
+Page::Page (Output_def *paper, int number)
{
copyright_ = SCM_EOL;
footer_ = SCM_EOL;
height_ = 0;
line_count_ = 0;
-
- page_count_++;
-
+ is_last_ = false;
header_ = scm_call_2 (paper_->c_variable ("make-header"),
paper_->self_scm (),
scm_int2num (number_));
if (p->paper_)
{
scm_gc_mark (p->paper_->self_scm ());
- if (p->bookpaper ())
- {
- scm_gc_mark (p->bookpaper ()->self_scm ());
- }
}
scm_gc_mark (p->copyright_);
LY_DEFINE (ly_page_paper_lines, "ly:page-paper-lines",
1, 0, 0, (SCM page),
- "Return paper-lines from PAGE.")
+ "Return paper-lines from @var{page}.")
{
Page *p = unsmob_page (page);
SCM_ASSERT_TYPE (p, page, SCM_ARG1, __FUNCTION__, "page");
return p->lines_;
}
+
+LY_DEFINE (ly_page_stencil, "ly:page-stencil",
+ 1, 0, 0, (SCM page),
+ "Return stencil for @var{page}.")
+{
+ Page *p = unsmob_page (page);
+ SCM_ASSERT_TYPE (p, page, SCM_ARG1, __FUNCTION__, "page");
+ return p->to_stencil ().smobbed_copy ();
+}
+
+
+LY_DEFINE (ly_page_last_p, "ly:page-last?",
+ 1, 0, 0, (SCM page),
+ "Is @var{page} the last one?")
+{
+ Page *p = unsmob_page (page);
+ SCM_ASSERT_TYPE (p, page, SCM_ARG1, __FUNCTION__, "page");
+ return ly_bool2scm (p->is_last_);
+}