]> git.donarmstrong.com Git - lilypond.git/blob - lily/p-col.cc
release: 0.1.11
[lilypond.git] / lily / p-col.cc
1 /*
2   p-col.cc -- implement Paper_column
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9 #include "p-col.hh"
10 #include "p-score.hh"
11 #include "debug.hh"
12
13
14 int
15 Paper_column::rank_i() const
16 {
17   return rank_i_;
18 }
19
20 void
21 Paper_column::set_rank (int i)
22 {
23   rank_i_ = i;
24   if (prebreak_l())
25     prebreak_l()->rank_i_ = i;
26   if (postbreak_l())
27     postbreak_l()->rank_i_ = i;
28 }
29
30 void
31 Paper_column::do_print() const
32 {
33 #ifndef NPRINT
34   DOUT << "rank: " << rank_i_ << '\n';
35   if (prebreak_l())
36     {
37       DOUT << "\npre: ";
38       prebreak_l()->print();
39     }
40   if (postbreak_l()) 
41     {
42       DOUT << "post: ";
43       postbreak_l()->print();
44     } 
45   if (break_status_i_)
46     {
47       DOUT <<'\n' << ((break_status_i_ == -1)? "prebreak" : "postbreak");
48       DOUT << '\n';
49     }
50   DOUT << "extent: " << width().str () << "\n";
51 #endif 
52 }
53
54 int
55 Paper_column::compare (Paper_column const &c1, Paper_column const &c2)
56 {
57   return c1.rank_i() - c2.rank_i ();
58 }
59
60 Paper_column*
61 Paper_column::prebreak_l() const
62 {
63   return (Paper_column*)broken_to_drul_[LEFT];
64 }
65
66 Paper_column*
67 Paper_column::postbreak_l() const
68 {
69   return(Paper_column*) broken_to_drul_[RIGHT];
70 }
71 bool
72 Paper_column::breakpoint_b() const
73 {
74   return !line_l_;
75 }
76
77 Paper_column::Paper_column()
78 {
79   used_b_ = false;
80   error_mark_b_ = false;
81   line_l_=0;
82   rank_i_ = -1;
83 }
84
85 Line_of_score*
86 Paper_column::line_l() const
87 {
88   return line_l_;
89 }
90
91 bool
92 Paper_column::used_b() const
93 {
94   return linked_b();
95 }
96
97 IMPLEMENT_IS_TYPE_B1(Paper_column, Horizontal_group_item);
98