source file of the GNU LilyPond music typesetter
- (c) 1997--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
#ifndef BOOK_HH
#define BOOK_HH
-#include "input.hh"
#include "lily-proto.hh"
-#include "parray.hh"
-#include "object-key.hh"
-#include "string.hh"
+#include "std-vector.hh"
+#include "std-string.hh"
+#include "virtual-methods.hh"
+#include "smobs.hh"
-class Book : public Input
+class Book
{
- DECLARE_SMOBS (Book, foo);
+ DECLARE_SMOBS (Book);
public:
- String user_key_;
+ string user_key_;
SCM header_;
Output_def *paper_;
SCM scores_;
+ SCM bookparts_;
+ SCM input_location_;
+ Book (Book const &);
+ Input *origin() const;
+ VIRTUAL_COPY_CONSTRUCTOR(Book, Book);
Book ();
void add_score (SCM);
- Paper_book *process (String,
- Output_def *def_paper,
+ void add_bookpart (SCM);
+ Paper_book *process (Output_def *def_paper,
Output_def *def_layout);
+ Paper_book *process (Output_def *default_paper,
+ Output_def *default_layout,
+ Paper_book *parent_part);
void set_keys ();
+
+protected:
+ void set_parent (Book *parent);
+ void add_scores_to_bookpart ();
+ bool error_found ();
+ void process_score (SCM score,
+ Paper_book *output_paper_book,
+ Output_def *layout);
+ void process_bookparts (Paper_book *output_paper_book,
+ Output_def *paper,
+ Output_def *layout);
};
DECLARE_UNSMOB (Book, book);