#include "span-bar.hh"
#include "span-score-bar-engraver.hh"
#include "paper-def.hh"
+#include "dimension-cache.hh"
+
+ADD_THIS_TRANSLATOR (Piano_bar_engraver);
+ADD_THIS_TRANSLATOR (Staff_group_bar_engraver);
+ADD_THIS_TRANSLATOR (Span_score_bar_engraver);
Span_bar*
Span_score_bar_engraver::get_span_bar_p () const
{
Span_bar*s = new Span_bar;
- s->visibility_lambda_
- = gh_eval_str ("Span_score_bar_visibility");
- s->type_str_ = "scorebar";
-
+ s->set_elt_property ("default-glyph", gh_str02scm ("scorebar"));
+ s->set_elt_property ("break-aligned",SCM_BOOL_T);
+
return s;
}
-
Span_score_bar_engraver::Span_score_bar_engraver ()
{
use_priority_b_ = true;
- break_priority_i_ = -4;
}
Span_bar*
Piano_bar_engraver::get_span_bar_p () const
{
Span_bar *s= new Span_bar;
- s->visibility_lambda_
- = gh_eval_str ("Piano_bar_visibility");
- s->no_width_b_ =true;
- s->type_str_ = "{";
+ s->set_empty (X_AXIS);
+ s->set_elt_property ("default-glyph", gh_str02scm ("brace"));
return s;
}
+void
+Piano_bar_engraver::acknowledge_element (Score_element_info i)
+{
+ Base_span_bar_engraver::acknowledge_element (i);
+
+ if (Span_bar * b = dynamic_cast<Span_bar *> (i.elem_l_))
+ {
+ SCM g = b->get_elt_property ("default-glyph");
+ if (gh_string_p (g) && (ly_scm2string (g) == "bracket"))
+ spanbar_p_->set_elt_property ("other", b->self_scm_);
+ }
+}
+
Span_bar*
Staff_group_bar_engraver::get_span_bar_p () const
{
Span_bar *s= new Span_bar;
- s->visibility_lambda_
- = gh_eval_str ("Staff_group_bar_visibility");
- s->no_width_b_ =true;
- s->type_str_ = "[";
+ s->set_empty (X_AXIS);
+ s->set_elt_property ("default-glyph", gh_str02scm ("bracket"));
return s;
}
Staff_group_bar_engraver::acknowledge_element (Score_element_info i)
{
Base_span_bar_engraver::acknowledge_element (i);
+
+ if (!spanbar_p_)
+ return;
+
if (Span_bar * b = dynamic_cast<Span_bar *> (i.elem_l_))
{
- if (b->type_str_ == "{")
- b->extra_x_off_ -= paper ()->interline_f (); // ugh
+ SCM g = b->get_elt_property ("default-glyph");
+ if (gh_string_p (g) && (ly_scm2string (g) == "brace"))
+ spanbar_p_->set_elt_property ("other", b->self_scm_);
}
}
-ADD_THIS_TRANSLATOR (Piano_bar_engraver);
-ADD_THIS_TRANSLATOR (Staff_group_bar_engraver);
-ADD_THIS_TRANSLATOR (Span_score_bar_engraver);