]> git.donarmstrong.com Git - lilypond.git/blob - lily/span-score-bar-engraver.cc
087df227daad6212c0518691c9fa928610662d26
[lilypond.git] / lily / span-score-bar-engraver.cc
1 /*
2   span-score-bar-engraver.cc -- implement Span_score_bar_engraver,
3   Piano_bar_engraver and Staff_group_bar_engraver
4
5   source file of the GNU LilyPond music typesetter
6
7   (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
8 */
9
10 #include "span-bar.hh"
11 #include "span-score-bar-engraver.hh"
12 #include "paper-def.hh"
13 #include "dimension-cache.hh"
14
15 Span_bar*
16 Span_score_bar_engraver::get_span_bar_p () const
17 {
18   Span_bar*s =  new Span_bar;
19   s->type_str_ = "scorebar";
20   s->set_elt_property (break_priority_scm_sym,
21                        gh_int2scm (-4));
22
23   return s;
24 }
25
26
27 Span_score_bar_engraver::Span_score_bar_engraver ()
28 {
29   use_priority_b_ = true;
30   break_priority_i_ = -4;
31 }
32
33 Span_bar*
34 Piano_bar_engraver::get_span_bar_p () const
35 {
36   Span_bar *s= new Span_bar;
37   s->dim_cache_[X_AXIS]->set_empty (true);
38   s->type_str_ = "brace";
39   return s;
40 }
41
42 Span_bar*
43 Staff_group_bar_engraver::get_span_bar_p () const
44 {
45   Span_bar *s= new Span_bar;
46   s->dim_cache_[X_AXIS]->set_empty (true);
47   s->type_str_ = "bracket";
48   return s;
49 }
50
51 void
52 Staff_group_bar_engraver::acknowledge_element (Score_element_info i)
53 {
54   Base_span_bar_engraver::acknowledge_element (i);
55   if (Span_bar * b = dynamic_cast<Span_bar *> (i.elem_l_))
56     {
57       if (b->type_str_ == "brace")
58         b->translate_axis ( -paper_l ()->get_realvar (interline_scm_sym),
59                             X_AXIS); // ugh
60     }
61 }
62
63 ADD_THIS_TRANSLATOR (Piano_bar_engraver);
64 ADD_THIS_TRANSLATOR (Staff_group_bar_engraver);
65 ADD_THIS_TRANSLATOR (Span_score_bar_engraver);
66