]> git.donarmstrong.com Git - lilypond.git/blob - lily/dot-column-engraver.cc
patch::: 1.3.18.jcn1
[lilypond.git] / lily / dot-column-engraver.cc
1 /*   
2   dot-column-engraver.cc -- implement Dot_column_engraver
3   
4   source file of the GNU LilyPond music typesetter
5   
6   (c) 1998--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7   
8  */
9
10 #include "dot-column-engraver.hh"
11 #include "rhythmic-head.hh"
12 #include "dot-column.hh"
13
14 ADD_THIS_TRANSLATOR (Dot_column_engraver);
15
16 Dot_column_engraver::Dot_column_engraver ()
17 {
18   dotcol_p_ =0;
19 }
20
21 void
22 Dot_column_engraver::do_pre_move_processing ()
23 {
24   if (dotcol_p_)
25     {
26       typeset_element (dotcol_p_);
27       dotcol_p_ =0;
28     }
29   head_l_arr_.clear ();
30 }
31
32 void
33 Dot_column_engraver::acknowledge_element (Score_element_info info)
34 {
35   Rhythmic_head * h = dynamic_cast<Rhythmic_head*>(info.elem_l_);
36   if (!h)
37       return;
38
39   if (!h->dots_l ())
40     return;
41
42   if (!dotcol_p_)
43     {
44       dotcol_p_ = new Dot_column;
45       announce_element (Score_element_info (dotcol_p_, 0));
46     }
47
48   dotcol_p_->add_head (h);
49 }
50