2 span-score-bar-engraver.cc -- implement Span_score_bar_engraver,
3 Piano_bar_engraver and Staff_group_bar_engraver
5 source file of the GNU LilyPond music typesetter
7 (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
10 #include "span-bar.hh"
11 #include "span-score-bar-engraver.hh"
12 #include "paper-def.hh"
13 #include "dimension-cache.hh"
15 ADD_THIS_TRANSLATOR (Piano_bar_engraver);
16 ADD_THIS_TRANSLATOR (Staff_group_bar_engraver);
17 ADD_THIS_TRANSLATOR (Span_score_bar_engraver);
20 Span_score_bar_engraver::get_span_bar_p () const
22 Span_bar*s = new Span_bar;
23 s->set_elt_property ("default-glyph", gh_str02scm ("scorebar"));
24 s->set_elt_property ("break-aligned",SCM_BOOL_T);
29 Span_score_bar_engraver::Span_score_bar_engraver ()
31 use_priority_b_ = true;
35 Piano_bar_engraver::get_span_bar_p () const
37 Span_bar *s= new Span_bar;
38 s->set_empty (X_AXIS);
39 s->set_elt_property ("default-glyph", gh_str02scm ("brace"));
44 Piano_bar_engraver::acknowledge_element (Score_element_info i)
46 Base_span_bar_engraver::acknowledge_element (i);
48 if (Span_bar * b = dynamic_cast<Span_bar *> (i.elem_l_))
50 SCM g = b->get_elt_property ("default-glyph");
51 if (gh_string_p (g) && (ly_scm2string (g) == "bracket"))
52 spanbar_p_->set_elt_property ("other", b->self_scm_);
57 Staff_group_bar_engraver::get_span_bar_p () const
59 Span_bar *s= new Span_bar;
60 s->set_empty (X_AXIS);
61 s->set_elt_property ("default-glyph", gh_str02scm ("bracket"));
66 Staff_group_bar_engraver::acknowledge_element (Score_element_info i)
68 Base_span_bar_engraver::acknowledge_element (i);
73 if (Span_bar * b = dynamic_cast<Span_bar *> (i.elem_l_))
75 SCM g = b->get_elt_property ("default-glyph");
76 if (gh_string_p (g) && (ly_scm2string (g) == "brace"))
77 spanbar_p_->set_elt_property ("other", b->self_scm_);