/*
- staff-sym-reg.cc -- implement Staff_symbol_engraver
+ staff-symbol-engraver.cc -- implement Staff_symbol_engraver
source file of the GNU LilyPond music typesetter
- (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "staff-symbol.hh"
};
-ADD_THIS_TRANSLATOR (Staff_symbol_engraver);
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;
}
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
-
- SCM ss =s.elem_l_->remove_elt_property ("staff-support");
- if (to_boolean (ss))
- {
- Side_position_interface si (s.elem_l_);
- if (si.has_interface_b ())
- si.add_support (span_p_);
- }
}
+
+ADD_THIS_TRANSLATOR(Staff_symbol_engraver);
+