X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fscript-engraver.cc;h=2012f053ba47bb1f461d0f99f3bab9d86b3dd07f;hb=3368751cb2eb1cb583adc6b7769ea0164c93d879;hp=f27577e44b17e5228dfb110f148fb5a48021240c;hpb=9efbad2d9487a05b04423e7e9f062968e8f8eaf4;p=lilypond.git diff --git a/lily/script-engraver.cc b/lily/script-engraver.cc index f27577e44b..2012f053ba 100644 --- a/lily/script-engraver.cc +++ b/lily/script-engraver.cc @@ -1,5 +1,5 @@ /* - script-reg.cc -- implement Script_engraver + script-engraver.cc -- implement Script_engraver (c) 1997--1998 Han-Wen Nienhuys */ @@ -19,19 +19,19 @@ Script_engraver::Script_engraver() } bool -Script_engraver::do_try_request (Request *r_l) +Script_engraver::do_try_music (Music *r_l) { - if (!dynamic_cast (r_l)) - return false ; - - for (int i=0; i < script_req_l_arr_.size(); i++) + if (Musical_script_req *mr = dynamic_cast (r_l)) { - if (r_l->equal_b (script_req_l_arr_[i])) - return true; + for (int i=0; i < script_req_l_arr_.size(); i++) + { + if (script_req_l_arr_[i]->equal_b (mr)) + return true; + } + script_req_l_arr_.push (mr); + return true; } - script_req_l_arr_.push (dynamic_cast (r_l)); - - return true; + return false; } void @@ -61,15 +61,17 @@ Script_engraver::do_pre_move_processing() if (!script_p->specs_p_->inside_b()) script_p->add_support (s_l); - if (script_p->specs_p_->is_type_b (Text_def::static_name ())) + if (dynamic_cast (script_p->specs_p_)) // UGH { Text_def * td_l = (Text_def*)script_p->specs_p_; - Scalar style = get_property ("textstyle"); - if (style.to_bool ()) + if (!td_l->style_str_.length_i ()) { - td_l->style_str_= style; + Scalar style = get_property ("textstyle", 0); + if (style.to_bool ()) + td_l->style_str_= style; } - Scalar alignment = get_property ("textalignment"); + // urg, what if this is already set? in-band signaling... + Scalar alignment = get_property ("textalignment", 0); if (alignment.isnum_b()) { td_l->align_dir_= (Direction)(int)alignment; @@ -87,5 +89,5 @@ Script_engraver::do_post_move_processing() } -IMPLEMENT_IS_TYPE_B1(Script_engraver,Engraver); + ADD_THIS_TRANSLATOR(Script_engraver);