]> git.donarmstrong.com Git - lilypond.git/blob - lily/dot-column-engraver.cc
release: 1.3.64
[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--2000 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 #include "side-position-interface.hh"
14
15 Dot_column_engraver::Dot_column_engraver ()
16 {
17   dotcol_p_ =0;
18 }
19
20 void
21 Dot_column_engraver::do_pre_move_processing ()
22 {
23   if (dotcol_p_)
24     {
25       typeset_element (dotcol_p_);
26       dotcol_p_ =0;
27     }
28   head_l_arr_.clear ();
29 }
30
31 void
32 Dot_column_engraver::acknowledge_element (Score_element_info info)
33 {
34   Rhythmic_head * h = dynamic_cast<Rhythmic_head*>(info.elem_l_);
35   if (!h)
36       return;
37
38   if (!h->dots_l ())
39     return;
40
41   if (!dotcol_p_)
42     {
43       dotcol_p_ = new Dot_column(get_property ("basicDotColumnProperties"));
44       Side_position_interface (dotcol_p_).set_axis (X_AXIS);
45       Side_position_interface (dotcol_p_).set_direction (RIGHT);      
46       announce_element (Score_element_info (dotcol_p_, 0));
47     }
48
49   dotcol_p_->add_head (h);
50 }
51
52
53 ADD_THIS_TRANSLATOR(Dot_column_engraver);
54