]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/line-of-score.hh
release: 1.3.69
[lilypond.git] / lily / include / line-of-score.hh
1 /*
2   line-of-score.hh -- part of GNU LilyPond
3
4   (c) 1996--2000 Han-Wen Nienhuys
5 */
6
7 #ifndef SCORELINE_HH
8 #define SCORELINE_HH
9
10 #include "protected-scm.hh" 
11 #include "column-x-positions.hh"
12 #include "spanner.hh"
13
14 /**
15    The columns of a score that form one line.  The toplevel element.
16    Any element has a Line_of_score as both X and Y reference
17    point. The Paper_score contains one element of this type. Control
18    enters the Score_element dependency calculation from this single
19    Line_of_score object.
20    
21    
22   properties:
23
24     all-elements -- list of all score elements in this line. Needed
25       for protecting elements from GC.
26
27     columns -- list of all paper columns
28
29   */
30 class Line_of_score : public Spanner
31 {
32 public:
33   int rank_i_;
34   void post_processing();
35
36   Protected_scm output_;
37   Line_of_score(SCM);
38     
39   /// is #c# contained in #*this#?
40   bool contains_b (Paper_column const *c) const;
41   int element_count () const;
42
43   void break_into_pieces (Array<Column_x_positions> const&);
44   void output_lines ();
45
46   Link_array<Item> broken_col_range (Item const*, Item const*) const;
47   Link_array<Paper_column> column_l_arr () const;
48   
49   void add_column (Paper_column*);
50   void typeset_element (Score_element*);
51   void output_molecule (SCM, Offset);
52   void output_scheme (SCM);
53   void pre_processing ();
54 protected:
55   VIRTUAL_COPY_CONS(Score_element);
56 };
57
58 #endif
59