2 paper-column.cc -- implement Paper_column
4 source file of the GNU LilyPond music typesetter
6 (c) 1997--2001 Han-Wen Nienhuys <hanwen@cs.uu.nl>
9 #include "paper-column.hh"
10 #include "paper-score.hh"
12 #include "axis-group-interface.hh"
13 #include "spaceable-element.hh"
16 Paper_column::do_break_processing ()
18 Spaceable_grob::remove_interface (this);
19 Item::do_break_processing ();
23 Paper_column::rank_i (Grob
*me
)
25 return dynamic_cast<Paper_column
*> (me
)->rank_i_
;
29 Paper_column::line_l () const
35 Paper_column::column_l () const
37 return (Paper_column
*) (this);
40 Paper_column::Paper_column (SCM l
)
43 Axis_group_interface::set_interface (this);
44 Axis_group_interface::set_axes (this, X_AXIS
, X_AXIS
);
45 Spaceable_grob::set_interface (this);
52 Paper_column::when_mom (Grob
*me
)
54 SCM m
= me
->get_grob_property ("when");
56 if (unsmob_moment (m
))
58 return *unsmob_moment (m
);
64 Paper_column::musical_b () const
66 SCM m
= get_grob_property ("shortest-starter-duration");
68 if (unsmob_moment (m
))
70 s
= *unsmob_moment (m
);
72 return s
!= Moment (0);
76 Paper_column::used_b (Grob
*me
)
78 return gh_pair_p (me
->get_grob_property ("elements")) || Item::breakable_b (me
)
79 || gh_pair_p (me
->get_grob_property ("bounded-by-me"))