]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/staff-symbol-engraver.cc
release: 1.3.55
[lilypond.git] / lily / staff-symbol-engraver.cc
index 30ff14f405207739df9218cd9910bd6497c6869d..e5bc48cd622a82126bd16bcbd6be411fdcb2fe08 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  staff-sym-reg.cc -- implement Staff_symbol_engraver
+  staff-symbol-engraver.cc -- implement Staff_symbol_engraver
 
   source file of the GNU LilyPond music typesetter
 
@@ -46,15 +46,24 @@ Staff_symbol_engraver::Staff_symbol_engraver()
 void
 Staff_symbol_engraver::do_creation_processing()
 {
-  span_p_ = new Staff_symbol;
-  span_p_->set_bounds(LEFT,get_staff_info().command_pcol_l ());
+  span_p_ = new Staff_symbol (get_property ("staffSymbolBasicProperties"));
+  span_p_->set_bound(LEFT,get_staff_info().command_pcol_l ());
+
   announce_element (Score_element_info (span_p_, 0));
 }
 
 void
 Staff_symbol_engraver::do_removal_processing()
 {
-  span_p_->set_bounds(RIGHT,get_staff_info().command_pcol_l ());
+  SCM n = get_property ("numberOfStaffLines");
+  SCM ss = get_property ("staffSpace");
+
+  if (gh_number_p (ss))
+    span_p_->set_elt_property ("staff-space", ss);
+  if (gh_number_p (n))
+    span_p_->set_elt_property ("line-count", n);
+
+  span_p_->set_bound(RIGHT,get_staff_info().command_pcol_l ());
   typeset_element (span_p_);
   span_p_ =0;
 }
@@ -62,7 +71,7 @@ Staff_symbol_engraver::do_removal_processing()
 void
 Staff_symbol_engraver::acknowledge_element (Score_element_info s)
 {
-  s.elem_l_->set_elt_property ("staff-symbol", span_p_->self_scm_);
+  s.elem_l_->set_elt_pointer ("staff-symbol", span_p_->self_scm_);
   s.elem_l_->add_dependency (span_p_); // UGH. UGH. UGH 
 }