]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/page.cc
* python/lilylib.py (make_ps_images): only compute bbox when needed.
[lilypond.git] / lily / page.cc
index 3eeba7a5d94f344fea88ed1e06e4a6ffa44f0d8e..b84131a6776a73a4c91b5018450ef34ddcc49edc 100644 (file)
@@ -9,23 +9,16 @@
 #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;
@@ -38,9 +31,7 @@ Page::Page (Paper_def *paper, int number)
 
   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_));
@@ -76,10 +67,6 @@ Page::mark_smob (SCM smob)
   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_);
@@ -217,9 +204,28 @@ Page::text_height () const
 
 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_);
+}