X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fpaper-column.hh;h=4d4c5ac588b95c8cb10c8f2eb37de2d9de3a88e0;hb=75eebcb49e52d296b1da3e1074e0825d2c780db4;hp=3b1756e8f1cb77ce9548e48152734f2e9ffdd36d;hpb=0af2486a28f1c60b9de929a9101964d880927e54;p=lilypond.git diff --git a/lily/include/paper-column.hh b/lily/include/paper-column.hh index 3b1756e8f1..4d4c5ac588 100644 --- a/lily/include/paper-column.hh +++ b/lily/include/paper-column.hh @@ -3,74 +3,45 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2000 Han-Wen Nienhuys + (c) 1997--2006 Han-Wen Nienhuys */ - -#ifndef P_COL_HH -#define P_COL_HH +#ifndef PAPER_COLUMN_HH +#define PAPER_COLUMN_HH #include "item.hh" #include "rod.hh" -#include "spring.hh" - -/** - stuff grouped vertically. - This is a class to address items vertically. It contains the data for: - \begin{itemize} - \item - unbroken score - \item - broken score - \item - the linespacing problem - \end{itemize} - */ class Paper_column : public Item -{ -public: - VIRTUAL_COPY_CONS(Score_element); - - /* - ugh. - - TODO: - - * junk these after spacing is done. - - * Put these in Scheme. - */ - - - Array minimal_dists_; - Array springs_; - - - /* - Not (yet) in scm, because of messy effects when a column commits suicide. - */ - int rank_i_; - /// set a minimum distance - void add_rod (Paper_column * to, Real distance); - void add_spring (Paper_column * to, Real dist, Real strength); - - virtual Paper_column *column_l () const; - virtual Line_of_score *line_l () const; - +{ + int rank_; /// if lines are broken then this column is in #line# - Line_of_score *line_l_; + System *system_; - /// which one (left =0) - static int rank_i(Score_element*); + // ugh: friend declarations. + friend void set_loose_columns (System *which, Column_x_positions const *posns); + friend class System; +public: + Paper_column (SCM, Object_key const *); + Paper_column (Paper_column const &, int count); - Paper_column (SCM); - Moment when_mom ()const; + virtual Grob *clone (int count) const; + virtual void do_break_processing (); + virtual Paper_column *get_column () const; + virtual System *get_system () const; - bool musical_b () const; - bool used_b () const; + int get_rank () const { return rank_; } void set_rank (int); + + DECLARE_SCHEME_CALLBACK (print, (SCM)); + DECLARE_SCHEME_CALLBACK (before_line_breaking, (SCM)); + + static bool has_interface (Grob *); + static int get_rank (Grob *); + static bool is_musical (Grob *); + static Moment when_mom (Grob *); + static bool is_used (Grob *); }; - -#endif // P_COL_HH + +#endif // PAPER_COLUMN_HH