]> git.donarmstrong.com Git - lilypond.git/blob - lily/span-score-bar-engraver.cc
d3cff445e5fe397baabad9a2632d7e0096989066
[lilypond.git] / lily / span-score-bar-engraver.cc
1 /*
2   span-score-bar-grav.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--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
8 */
9
10 #include "span-score-bar.hh"
11 #include "piano-brace.hh"
12 #include "staff-bracket.hh"
13 #include "span-score-bar-engraver.hh"
14 #include "paper-def.hh"
15
16
17 Span_bar*
18 Span_score_bar_engraver::get_span_bar_p () const
19 {
20   Span_bar*s =  new Span_score_bar;
21   s->break_priority_i_ = -4;
22     
23   return s;
24 }
25
26
27 IMPLEMENT_IS_TYPE_B1 (Span_score_bar_engraver, Span_bar_engraver);
28 IMPLEMENT_IS_TYPE_B1 (Piano_bar_engraver, Span_score_bar_engraver);
29 IMPLEMENT_IS_TYPE_B1 (Staff_group_bar_engraver, Span_score_bar_engraver);
30
31 Span_bar*
32 Piano_bar_engraver::get_span_bar_p () const
33 {
34   Span_bar *s= new Piano_brace;
35   s->break_priority_i_ = -4;
36   return s;
37 }
38
39 Span_bar*
40 Staff_group_bar_engraver::get_span_bar_p () const
41 {
42   Span_bar *s= new Staff_bracket;
43   s->break_priority_i_ = -4;
44   return s;
45 }
46
47 void
48 Staff_group_bar_engraver::acknowledge_element (Score_element_info i)
49 {
50   Span_bar_engraver::acknowledge_element (i);
51   if (i.elem_l_->is_type_b (Piano_brace::static_name ()))
52     {
53       Span_bar* b =  dynamic_cast <Span_bar *> (i.elem_l_);
54       Piano_brace * piano_l = (Piano_brace*) b;
55       piano_l->extra_move_left_f_  = paper ()->interline_f (); // ugh
56     }
57 }
58
59 ADD_THIS_TRANSLATOR (Piano_bar_engraver);
60 ADD_THIS_TRANSLATOR (Staff_group_bar_engraver);
61 ADD_THIS_TRANSLATOR (Span_score_bar_engraver);
62