lilypond-1.3.65
[lilypond.git] / lily / priority-halign-engraver.cc
blob3f19e66551b859410e164c1e585e625b1c052c5c
1 /*
2 score-halign-reg.cc -- implement Priority_horizontal_align_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
9 #include "bar.hh"
10 #include "break-align-item.hh"
11 #include "priority-halign-engraver.hh"
12 #include "score-priority-engraver.hh"
14 Priority_horizontal_align_engraver::Priority_horizontal_align_engraver()
16 halign_p_ =0;
19 void
20 Priority_horizontal_align_engraver::do_pre_move_processing()
22 if (halign_p_)
24 typeset_element (halign_p_);
25 halign_p_ =0;
29 void
30 Priority_horizontal_align_engraver::acknowledge_element (Score_element_info i)
32 Engraver* reg = i.origin_grav_l_arr_[0];
33 if (dynamic_cast<Score_priority_engraver *> (reg))
35 if (!halign_p_)
37 halign_p_ = new Break_align_item;
38 halign_p_->breakable_b_ = true;
39 announce_element (Score_element_info (halign_p_,0));
41 Item * it = dynamic_cast <Item *> (i.elem_l_);
42 if (it->break_priority_i_ == 0)
43 halign_p_->center_l_ = it;
45 halign_p_->add_item (it, it->break_priority_i_);
50 ADD_THIS_TRANSLATOR(Priority_horizontal_align_engraver);