]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/base-span-bar-engraver.hh
cf992c8fb9d5df33c2401a9378f6122823199fd4
[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
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
19
20   */
21 class Base_span_bar_engraver : public Engraver
22 {
23   Span_bar * spanbar_p_;
24   Array<Bar*> bar_l_arr_;
25   Vertical_align_spanner * valign_l_;
26 public:
27   VIRTUAL_COPY_CONS(Translator);
28   
29     
30   Base_span_bar_engraver();
31 protected:
32   /**
33     Do we use break priorities?  If true, use break_priority_i_ as
34     horizontal alignment priority, otherwise, hang the spanbar on the
35     acknowledged bar.  */
36   bool use_priority_b_;
37   int break_priority_i_;
38   
39   virtual void acknowledge_element (Score_element_info);
40   virtual void do_pre_move_processing();
41   virtual Span_bar* get_span_bar_p() const;
42 };
43
44 #endif // SPAN_BAR_GRAV_HH