]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/span-bar.hh
release: 1.1.42
[lilypond.git] / lily / include / span-bar.hh
1 /*
2   span-bar.hh -- declare Span_bar
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_HH
11 #define SPAN_BAR_HH
12
13 #include "bar.hh"
14
15 /**
16    This is a barline that is spanned across other bar lines.  This is
17    the implementation of the long barlines that occur in orchestral
18    score and other multi-staff music.
19
20    TODO: Is this usable for other stuff besides barlines? We only have
21    to span a Score_element.  Perhaps this can be used for large time
22    sigs?
23 */
24 class Span_bar : public Bar
25 {
26   Link_array<Score_element> spanning_l_arr_;
27   Interval get_spanned_interval () const;
28 public:
29   Span_bar();
30     
31   VIRTUAL_COPY_CONS(Score_element);
32   void add_bar (Score_element*);
33   void set_align (Align_element *);
34 protected:
35   void evaluate_empty ();
36
37   virtual Interval do_width() const;
38   virtual void do_pre_processing();
39   virtual void do_post_processing();
40   virtual Interval do_height () const;
41   virtual void do_substitute_element_pointer (Score_element*,Score_element*);
42   virtual Molecule * do_brew_molecule_p() const;
43 };
44
45 #endif // SPAN_BAR_HH