]> git.donarmstrong.com Git - lilypond.git/blob - lily/span-score-bar-engraver.cc
4ed52a89247662a230cc4d27bbf24a0272acaab7
[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
14 Span_bar*
15 Span_score_bar_engraver::get_span_bar_p () const
16 {
17   Span_bar*s =  new Span_bar;
18   s->type_str_ = "scorebar";
19     
20   return s;
21 }
22
23
24 Span_score_bar_engraver::Span_score_bar_engraver ()
25 {
26   use_priority_b_ = true;
27   break_priority_i_ = -4;
28 }
29
30 Span_bar*
31 Piano_bar_engraver::get_span_bar_p () const
32 {
33   Span_bar *s= new Span_bar;
34   s->dim_cache_[X_AXIS].set_empty (true);
35   s->type_str_ = "{";
36   return s;
37 }
38
39 Span_bar*
40 Staff_group_bar_engraver::get_span_bar_p () const
41 {
42   Span_bar *s= new Span_bar;
43   s->dim_cache_[X_AXIS].set_empty (true);
44   s->type_str_ = "[";
45   return s;
46 }
47
48 void
49 Staff_group_bar_engraver::acknowledge_element (Score_element_info i)
50 {
51   Base_span_bar_engraver::acknowledge_element (i);
52   if (Span_bar * b = dynamic_cast<Span_bar *> (i.elem_l_))
53     {
54       if (b->type_str_ == "{")
55         b->extra_x_off_ -=  paper_l ()->get_realvar (interline_scm_sym); // 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