X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fpaper-column.hh;h=314f52ec8f578e3d44842774f3611bdb13139a3a;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=bb9cdfefb131a92af9802878ce50fe5b43207e5e;hpb=58bcc84c9480dae1b21bc24d8396b91fe19e0131;p=lilypond.git diff --git a/lily/include/paper-column.hh b/lily/include/paper-column.hh index bb9cdfefb1..314f52ec8f 100644 --- a/lily/include/paper-column.hh +++ b/lily/include/paper-column.hh @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2005 Han-Wen Nienhuys + (c) 1997--2008 Han-Wen Nienhuys */ #ifndef PAPER_COLUMN_HH @@ -14,31 +14,42 @@ class Paper_column : public Item { -public: int rank_; /// if lines are broken then this column is in #line# System *system_; - Paper_column (SCM, Object_key const *); - Paper_column (Paper_column const &, int count); - - virtual Grob *clone (int count) const; + // ugh: friend declarations. + friend void set_loose_columns (System *which, Column_x_positions const *posns); + friend class System; +public: + Paper_column (SCM); + Paper_column (Paper_column const &); - static bool has_interface (Grob *); + virtual Grob *clone () const; virtual void do_break_processing (); virtual Paper_column *get_column () const; virtual System *get_system () const; + void set_system (System *); - static int get_rank (Grob *); + static int compare (Grob * const &a, + Grob * const &b); + static bool less_than (Grob *const &a, + Grob *const &b); + + 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 *); - void set_rank (int); + static bool is_breakable (Grob *); + static Real minimum_distance (Grob *l, Grob *r); + static Interval break_align_width (Grob *me); }; #endif // PAPER_COLUMN_HH