X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fdot-column-engraver.cc;h=935d3f3e65e28375bb2ce9870c03b36cbe4e77c4;hb=f1346920f64c571a1475d3ded295b9637560c6bc;hp=ece651bc9ac74e86ad9ada3b60c7c37633a3df40;hpb=8aad615ea7bb31f49a0c2afc21eea5ff5de20437;p=lilypond.git diff --git a/lily/dot-column-engraver.cc b/lily/dot-column-engraver.cc index ece651bc9a..935d3f3e65 100644 --- a/lily/dot-column-engraver.cc +++ b/lily/dot-column-engraver.cc @@ -3,13 +3,29 @@ source file of the GNU LilyPond music typesetter - (c) 1998--1999 Han-Wen Nienhuys + (c) 1998--2000 Han-Wen Nienhuys */ -#include "dot-column-engraver.hh" + #include "rhythmic-head.hh" #include "dot-column.hh" +#include "side-position-interface.hh" +#include "engraver.hh" + +class Dot_column_engraver : public Engraver +{ + Score_element *dotcol_p_ ; + Link_array head_l_arr_; +public: + VIRTUAL_COPY_CONS(Translator); + Dot_column_engraver(); + +protected: + virtual void acknowledge_element (Score_element_info); + virtual void do_pre_move_processing (); +}; + Dot_column_engraver::Dot_column_engraver () { @@ -30,20 +46,21 @@ Dot_column_engraver::do_pre_move_processing () void Dot_column_engraver::acknowledge_element (Score_element_info info) { - Rhythmic_head * h = dynamic_cast(info.elem_l_); - if (!h) - return; + Score_element *d = unsmob_element (info.elem_l_->get_elt_property ("dot")); + if (d) + { + if (!dotcol_p_) + { + dotcol_p_ = new Item(get_property ("basicDotColumnProperties")); - if (!h->dots_l_) - return; + Dot_column::set_interface (dotcol_p_); + Side_position::set_axis (dotcol_p_, X_AXIS); + Side_position::set_direction (dotcol_p_, RIGHT); + announce_element (dotcol_p_, 0); + } - if (!dotcol_p_) - { - dotcol_p_ = new Dot_column; - announce_element (Score_element_info (dotcol_p_, 0)); + Dot_column::add_head (dotcol_p_, info.elem_l_); } - - dotcol_p_->add_head (h); }