lilypond-1.3.16
[lilypond.git] / lily / include / base-span-bar-engraver.hh
blobb4caf237d0cc572bf0da408b03758cc6a6d30822
1 /*
2 base-span-bar-engraver.hh -- declare Span_bar_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
10 #ifndef SPAN_BAR_GRAV_HH
11 #define SPAN_BAR_GRAV_HH
13 #include "engraver.hh"
14 class Axis_align_spanner;
15 /**
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.
24 class Base_span_bar_engraver : public Engraver
26 Span_bar * spanbar_p_;
27 Array<Bar*> bar_l_arr_;
29 public:
30 VIRTUAL_COPY_CONS(Translator);
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_;
41 virtual void acknowledge_element (Score_element_info);
42 virtual void do_pre_move_processing();
43 virtual Span_bar* get_span_bar_p() const;
46 #endif // SPAN_BAR_GRAV_HH