]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/script-engraver.cc
patch::: 1.1.25.jcn1: jcn1
[lilypond.git] / lily / script-engraver.cc
index f27577e44b17e5228dfb110f148fb5a48021240c..2012f053ba47bb1f461d0f99f3bab9d86b3dd07f 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  script-reg.cc -- implement Script_engraver
+  script-engraver.cc -- implement Script_engraver
 
   (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
@@ -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 <Musical_script_req *> (r_l))
-    return false ;
-  
-  for (int i=0; i < script_req_l_arr_.size(); i++) 
+  if (Musical_script_req *mr = dynamic_cast <Musical_script_req *> (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 <Script_req *> (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<Text_def *> (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);