]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/piano-pedal-engraver.cc
release: 1.3.61
[lilypond.git] / lily / piano-pedal-engraver.cc
index 216670ca3052192c5c2f5456f2d3411473fd0a0e..8f43379ba51bede70572e67fd85c967d54e9e04e 100644 (file)
@@ -16,8 +16,8 @@
 #include "stem.hh"
 #include "side-position-interface.hh"
 #include "staff-symbol-referencer.hh"
-#include "text-item.hh"
-#include "sustain-pedal.hh"
+#include "item.hh"
+
 
 /*
    TODO:
@@ -159,7 +159,7 @@ Piano_pedal_engraver::do_process_music ()
            }
          else
            {
-             s = get_property ("stopStart" + String (p->name_ ));
+             s = get_property (("stopStart" + String (p->name_ )).ch_C());
            }
          p->start_req_l_ = p->req_l_drul_[START];
        }
@@ -171,36 +171,34 @@ Piano_pedal_engraver::do_process_music ()
            }
          else
            {
-             s = get_property ("stop" + String (p->name_ ));
+             s = get_property (("stop" + String (p->name_ )).ch_C());
            }
          p->start_req_l_ = 0;
        }
       else if (p->req_l_drul_[START])
        {
          p->start_req_l_ = p->req_l_drul_[START];
-         s = get_property ("start" + String (p->name_ ));
+         s = get_property (("start" + String (p->name_ )).ch_C());
        }
 
-      if (s != SCM_UNDEFINED)
+      if (gh_string_p (s))
        {
          if (p->name_ == String ("Sustain"))
            {
-             p->item_p_ = new Sustain_pedal;
-             p->item_p_->set_elt_property ("text", s);
+             // fixme: Item should be sufficient.
+             p->item_p_ = new Item (get_property ("basicSustainPedalProperties"));
            }
          else
            {
-             p->item_p_ = new Text_item;
-             p->item_p_->set_elt_property ("text", s);
-             // guh
-             p->item_p_->set_elt_property ("style", ly_str02scm ("italic"));
+             p->item_p_ = new Item (get_property ("basicPedalProperties"));
            }
+         p->item_p_->set_elt_property ("text", s);
+         // guh
 
          Side_position_interface si (p->item_p_);
          si.set_axis (Y_AXIS);
 
-         p->item_p_->set_elt_property ("no-spacing-rods"  , SCM_BOOL_T);
-         p->item_p_->set_elt_property ("self-alignment-X", gh_int2scm (0));
+         // todo: init with basic props.
          p->item_p_->add_offset_callback (Side_position_interface::aligned_on_self, X_AXIS);
          p->item_p_->add_offset_callback (Side_position_interface::centered_on_parent, X_AXIS);
          announce_element (Score_element_info (p->item_p_,