X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fpaper-column.hh;h=cc2e2b90f1f530fe7ae14e077077d1381380c145;hb=7f3f0083f89d87c5ed0422858e9648fc759e98a4;hp=cc4778ddddfcff7b5b4d75cf92927bfc3c169460;hpb=8ecd09ad7514d57630fb611d38c161f3c3c708db;p=lilypond.git diff --git a/lily/include/paper-column.hh b/lily/include/paper-column.hh index cc4778dddd..cc2e2b90f1 100644 --- a/lily/include/paper-column.hh +++ b/lily/include/paper-column.hh @@ -3,43 +3,55 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2000 Han-Wen Nienhuys + (c) 1997--2008 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" class Paper_column : public Item -{ +{ + int rank_; + /// if lines are broken then this column is in #line# + System *system_; + + // ugh: friend declarations. + friend void set_loose_columns (System *which, Column_x_positions const *posns); + friend class System; public: - VIRTUAL_COPY_CONS(Score_element); + Paper_column (SCM); + Paper_column (Paper_column const &); - /* - Not (yet) in scm, because of messy effects when a column commits suicide. - */ - int rank_i_; + virtual Grob *clone () const; virtual void do_break_processing (); - virtual Paper_column *column_l () const; - virtual Line_of_score *line_l () const; - - /// if lines are broken then this column is in #line# - Line_of_score *line_l_; - - /// which one (left =0) - static int rank_i(Score_element*); + virtual Paper_column *get_column () const; + virtual System *get_system () const; + void set_system (System *); - Paper_column (SCM); - bool musical_b () const; - static Moment when_mom (Score_element*); + static int compare (Grob * const &a, + Grob * const &b); + static bool less_than (Grob *const &a, + Grob *const &b); - static bool used_b (Score_element*) ; + int get_rank () const { return rank_; } void set_rank (int); + + DECLARE_SCHEME_CALLBACK (print, (SCM)); + DECLARE_SCHEME_CALLBACK (before_line_breaking, (SCM)); + + DECLARE_GROB_INTERFACE(); + static int get_rank (Grob const *); + static bool is_musical (Grob *); + static Moment when_mom (Grob *); + static bool is_used (Grob *); + static bool is_breakable (Grob *); + static bool is_extraneous_column_from_ligature (Grob *); + static Real minimum_distance (Grob *l, Grob *r); + static Interval break_align_width (Grob *me); }; - -#endif // P_COL_HH + +#endif // PAPER_COLUMN_HH