lilypond-1.3.28
[lilypond.git] / lily / dot-column-engraver.cc
blob675574b034bad51e4c50ca6ce463486983f2e7bf
1 /*
2 dot-column-engraver.cc -- implement Dot_column_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 1998--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
8 */
10 #include "dot-column-engraver.hh"
11 #include "rhythmic-head.hh"
12 #include "dot-column.hh"
13 #include "side-position-interface.hh"
15 Dot_column_engraver::Dot_column_engraver ()
17 dotcol_p_ =0;
20 void
21 Dot_column_engraver::do_pre_move_processing ()
23 if (dotcol_p_)
25 typeset_element (dotcol_p_);
26 dotcol_p_ =0;
28 head_l_arr_.clear ();
31 void
32 Dot_column_engraver::acknowledge_element (Score_element_info info)
34 Rhythmic_head * h = dynamic_cast<Rhythmic_head*>(info.elem_l_);
35 if (!h)
36 return;
38 if (!h->dots_l ())
39 return;
41 if (!dotcol_p_)
43 dotcol_p_ = new Dot_column;
44 side_position (dotcol_p_).set_axis (X_AXIS);
45 side_position (dotcol_p_).set_direction (RIGHT);
46 announce_element (Score_element_info (dotcol_p_, 0));
49 dotcol_p_->add_head (h);
53 ADD_THIS_TRANSLATOR(Dot_column_engraver);