X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Flyric-engraver.cc;h=37aa4065ee24ce62d85db7b532c56e07f11010ce;hb=0cf97b5cdceecbba937f43ac827f4065aad5001e;hp=c0cc8a25fb8da8aa2042215228fcbee9a36abee6;hpb=8aad615ea7bb31f49a0c2afc21eea5ff5de20437;p=lilypond.git diff --git a/lily/lyric-engraver.cc b/lily/lyric-engraver.cc index c0cc8a25fb..37aa4065ee 100644 --- a/lily/lyric-engraver.cc +++ b/lily/lyric-engraver.cc @@ -9,7 +9,7 @@ #include "lyric-engraver.hh" #include "musical-request.hh" -#include "g-text-item.hh" +#include "text-item.hh" #include "paper-def.hh" #include "lookup.hh" @@ -18,6 +18,8 @@ ADD_THIS_TRANSLATOR (Lyric_engraver); Lyric_engraver::Lyric_engraver() { + text_p_ =0; + req_l_ =0; } bool @@ -25,7 +27,9 @@ Lyric_engraver::do_try_music (Music*r) { if (Lyric_req* l = dynamic_cast (r)) { - lyric_req_l_arr_.push (l); + if (req_l_) + return false; + req_l_ =l; return true; } return false; @@ -34,39 +38,35 @@ Lyric_engraver::do_try_music (Music*r) void Lyric_engraver::do_process_requests() { - if (text_p_arr_.size ()) - return; - - for (int i=0; i < lyric_req_l_arr_.size (); i++) + if (req_l_) { - Lyric_req* request_l = lyric_req_l_arr_[i]; - G_text_item* item_p = new G_text_item; - item_p->text_str_ = request_l->text_str_; + text_p_= new Text_item; + text_p_->text_str_ = req_l_->text_str_; + text_p_->text_str_ += " "; // ugh. - Scalar style = get_property ("textstyle", 0); + Scalar style = get_property ("textStyle", 0); if (style.length_i ()) - item_p->style_str_ = style; - if (i) - { - Real dy = paper ()->lookup_l (0)-> text - (item_p->style_str_, String ("Cg")).dim_. y ().length (); - dy *= 1.1; - item_p->translate_axis (-i * dy, Y_AXIS); - } + text_p_->style_str_ = style; + + text_p_->set_elt_property (non_rhythmic_scm_sym, SCM_BOOL_T); - text_p_arr_.push (item_p); - announce_element (Score_element_info (item_p, request_l)); + announce_element (Score_element_info (text_p_, req_l_)); } } void Lyric_engraver::do_pre_move_processing() { - for (int i=0; i < text_p_arr_.size (); i++) + if (text_p_) { - typeset_element (text_p_arr_[i]); + typeset_element (text_p_); + text_p_ =0; } - text_p_arr_.clear (); - lyric_req_l_arr_.clear (); +} + +void +Lyric_engraver::do_post_move_processing () +{ + req_l_ =0; }