X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fpaper-column.hh;h=03c503f9a831b829675a5ac278040a6800f252e7;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=f9686a4968811331cdcf62b9e732a7c1cce528f6;hpb=dcec99509152025ba1bdcb7d09b3f1d822fe8315;p=lilypond.git diff --git a/lily/include/paper-column.hh b/lily/include/paper-column.hh index f9686a4968..03c503f9a8 100644 --- a/lily/include/paper-column.hh +++ b/lily/include/paper-column.hh @@ -1,9 +1,20 @@ /* - paper-column.hh -- declare Paper_column + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 1997--2015 Han-Wen Nienhuys - (c) 1997--2006 Han-Wen Nienhuys + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #ifndef PAPER_COLUMN_HH @@ -18,34 +29,37 @@ class Paper_column : public Item /// 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: - Paper_column (SCM, Object_key const *); - Paper_column (Paper_column const &, int count); + Paper_column (SCM); + Paper_column (Paper_column const &); - virtual Grob *clone (int count) const; + 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 compare (Grob * const &a, - Grob * const &b); + 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)); - static bool has_interface (Grob *); - static int get_rank (Grob *); + 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, SCM align_sym); + static Interval get_interface_extent (Grob *column, SCM iface, Axis a); }; #endif // PAPER_COLUMN_HH -