/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1996--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1996--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
SCM systems_;
SCM paper_systems_;
- mutable vector<Grob*> cols_;
+ mutable vector<Grob *> cols_;
mutable vector<vsize> break_indices_;
mutable vector<vsize> break_ranks_;
public:
Paper_score (Output_def *);
-
- DECLARE_CLASSNAME(Paper_score);
+
+ DECLARE_CLASSNAME (Paper_score);
+
+ static Paper_score *unsmob (SCM ps) {
+ return dynamic_cast <Paper_score *> (Music_output::unsmob (ps));
+ }
+ static bool is_smob (SCM ps) {
+ return Music_output::is_smob (ps) && unsmob (ps);
+ }
Output_def *layout () const;
System *root_system () const;
vector<Column_x_positions> calc_breaking ();
vector<vsize> get_break_indices () const;
vector<vsize> get_break_ranks () const;
- vector<Grob*> get_columns () const;
+ vector<Grob *> get_columns () const;
SCM get_paper_systems ();
protected:
void find_break_indices () const;
virtual void derived_mark () const;
private:
- Paper_score (Paper_score const &);
+ Paper_score (Paper_score const &); // Do not define! Not copyable!
};
#endif /* PAPER_SCORE_HH */