2 p-col.hh -- declare Paper_column
4 source file of the GNU LilyPond music typesetter
6 (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
13 #include "horizontal-group-item.hh"
19 stuff grouped vertically.
20 This is a class to address items vertically. It contains the data for:
27 the linespacing problem
31 class Paper_column : public Horizontal_group_item {
33 DECLARE_MY_RUNTIME_TYPEINFO;
34 SCORE_ELEM_CLONE(Paper_column);
35 Drul_array< Array<Column_rod> > minimal_dists_arr_drul_;
38 /// set a minimum distance
39 void add_rod (Paper_column * to, Real distance);
41 /** prebreak is put before end of line.
42 if broken here, then (*this) column is discarded, and prebreak
43 is put at end of line, owned by Col
45 Paper_column *prebreak_l() const;
47 /// postbreak at beginning of the new line
48 Paper_column *postbreak_l() const;
50 virtual Paper_column * column_l () const;
51 /// if lines are broken then this column is in #line#
52 Line_of_score *line_l_;
54 virtual Line_of_score *line_l () const;
56 bool used_b_ ; // manual override..
60 /// which one (left =0)
63 /// does this column have items
65 bool breakpoint_b() const;
72 which col comes first?.
73 signed compare on columns.
75 @return < 0 if c1 < c2.
77 static int compare (const Paper_column &c1, const Paper_column &c2);
81 virtual void do_print() const;
85 The ranking: left is smaller than right
94 INSTANTIATE_COMPARE(Paper_column &, Paper_column::compare);