]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/scoreline.hh
release: 0.0.70pre
[lilypond.git] / lily / include / scoreline.hh
1 /*
2   scoreline.hh -- part of GNU LilyPond
3
4   (c) 1996,97 Han-Wen Nienhuys
5 */
6
7 #ifndef SCORELINE_HH
8 #define SCORELINE_HH
9
10 #include "colhpos.hh"
11 #include "spanner-elem-group.hh"
12 #include "vertical-align-elem.hh"
13
14 /// the columns of a score that form one line.
15 class Line_of_score : public Spanner, public Vertical_align_elem {
16 public:
17     Link_array<PCol> cols;
18     bool error_mark_b_;
19     virtual String TeX_string() const;    
20     
21
22     NAME_MEMBERS();
23     Line_of_score();
24     
25     void add(Score_elem *);
26
27     /// is #c# contained in #*this#?
28     bool contains_b(PCol const *c)const;
29     bool contains_b(Score_elem const*e) const {  
30         return Vertical_align_elem::contains_b(e); 
31     }
32     
33     Link_array<Line_of_score> get_lines()const;
34     void set_breaking(Array<Col_hpositions> const&);
35     
36 protected:
37     virtual void break_into_pieces();
38     virtual void do_substitute_dependency(Score_elem*,Score_elem*);
39     virtual Interval do_width()const;
40     virtual void do_print() const;
41     SCORE_ELEM_CLONE(Line_of_score);
42 };
43
44 #endif
45