]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/staff-sym-engraver.cc
release: 1.1.35
[lilypond.git] / lily / staff-sym-engraver.cc
index d18374277bb9e59785b859bec0e0b857bdd6b9c1..ba0431f4e36e108e2fb31a93da3bae2e1e38c02e 100644 (file)
@@ -3,20 +3,15 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 #include "staff-sym-engraver.hh"
-#include "staff-sym.hh"
+#include "staff-symbol.hh"
 #include "score.hh"
 #include "p-col.hh"
-
-
-void
-Staff_symbol_engraver::fill_staff_info (Staff_info&i)
-{
-  i.staff_sym_l_ = span_p_;
-}
+#include "staff-symbol-referencer.hh"
+#include "paper-def.hh"
 
 Staff_symbol_engraver::~Staff_symbol_engraver()
 {
@@ -39,18 +34,34 @@ Staff_symbol_engraver::do_creation_processing()
 void
 Staff_symbol_engraver::do_removal_processing()
 {
-  Scalar l (get_property ("numberOfStaffLines"));
+  Scalar l (get_property ("numberOfStaffLines", 0));
   if (l.isnum_b ())
     {
       span_p_->no_lines_i_ = l;
     }
 
+  Scalar sz (get_property ("staffLineLeading", 0));
+  if (!sz.empty_b () && sz.isnum_b ())
+    {
+      span_p_->staff_line_leading_f_ = Real(sz);
+    }
+  else
+    {
+      span_p_->staff_line_leading_f_ = paper_l ()->get_realvar (interline_scm_sym);
+    }
   span_p_->set_bounds(RIGHT,get_staff_info().command_pcol_l ());
   typeset_element (span_p_);
   span_p_ =0;
 }
 
-
+void
+Staff_symbol_engraver::acknowledge_element (Score_element_info s)
+{
+  if (Staff_symbol_referencer * st = dynamic_cast<Staff_symbol_referencer*> (s.elem_l_))
+    {
+      st->set_staff_symbol (span_p_);      
+    }
+}
 
 
 ADD_THIS_TRANSLATOR(Staff_symbol_engraver);