2 bar-column-grav.cc -- implement Bar_column_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
10 #include "bar-column-grav.hh"
11 #include "bar-column.hh"
16 Bar_column_engraver::Bar_column_engraver()
24 Bar_column_engraver::acknowledge_element(Score_elem_info info)
26 if (info.elem_l_->is_type_b(Script::static_name())
27 && info.req_l_->command()
28 && info.origin_grav_l_arr_.size() == 1) {
29 script_l_arr_.push( (Script*)info.elem_l_->item());
31 if (info.origin_grav_l_arr_.size() == 1
32 && info.elem_l_->is_type_b(Bar::static_name()))
33 bar_l_ = (Bar*)info.elem_l_->item();
36 if ( bar_l_ && !barcol_p_ ) {
37 barcol_p_ = new Bar_column;
38 barcol_p_->breakable_b_ =true;
39 barcol_p_->set_bar( bar_l_ );
40 announce_element(Score_elem_info(barcol_p_, 0));
44 for (int i=0; i < script_l_arr_.size(); i++) {
45 script_l_arr_[i]->breakable_b_ = true;
46 barcol_p_->add(script_l_arr_[i]);
48 script_l_arr_.clear();
53 Bar_column_engraver::do_pre_move_processing()
56 typeset_element( barcol_p_ );
62 Bar_column_engraver::do_post_move_processing()
64 script_l_arr_.clear();
68 IMPLEMENT_IS_TYPE_B1(Bar_column_engraver, Engraver);
69 ADD_THIS_ENGRAVER(Bar_column_engraver);