]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/base-span-bar-engraver.hh
release: 1.3.5
[lilypond.git] / lily / include / base-span-bar-engraver.hh
1 /*
2   base-span-bar-engraver.hh -- declare Span_bar_engraver
3
4   source file of the GNU LilyPond music typesetter
5
6   (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9
10 #ifndef SPAN_BAR_GRAV_HH
11 #define SPAN_BAR_GRAV_HH
12
13 #include "engraver.hh"
14 class Axis_align_spanner;
15 /** 
16
17   Make bars that span multiple "staffs". Catch bars, and span a
18   Span_bar over them if we find more than 2 bars.  Vertical alignment
19   of staffs changes the appearance of spanbars.  It is up to the
20   aligner (Vertical_align_engraver, in this case, to add extra
21   dependencies to the spanbars.
22
23   */
24 class Base_span_bar_engraver : public Engraver
25 {
26   Span_bar * spanbar_p_;
27   Array<Bar*> bar_l_arr_;
28
29 public:
30   VIRTUAL_COPY_CONS(Translator);
31   
32     
33   Base_span_bar_engraver();
34 protected:
35   /**
36     Do we use break priorities?  If true, use break_priority_i_ as
37     horizontal alignment priority, otherwise, hang the spanbar on the
38     acknowledged bar.  */
39   bool use_priority_b_;
40   
41   virtual void acknowledge_element (Score_element_info);
42   virtual void do_pre_move_processing();
43   virtual Span_bar* get_span_bar_p() const;
44 };
45
46 #endif // SPAN_BAR_GRAV_HH