]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/score-walker.hh
fc4a554f4524b50a6a487acc6a7a4dc9731847df
[lilypond.git] / lily / include / score-walker.hh
1 /*
2   score-walker.hh -- declare Score_walker
3
4   source file of the LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7
8     
9 */
10
11
12 #ifndef SCOREWALKER_HH
13 #define SCOREWALKER_HH
14 #include "pcursor.hh"
15 #include "proto.hh"
16 #include "varray.hh"
17
18
19 /**
20   walk through the score_columns, and while doing so, walk all staffs in a score.
21
22   TODO
23   support for vertical spanners.
24   */
25 class Score_walker : public PCursor<Score_column *>
26 {
27     Score* score_l_;
28     /// walkers for the individual staves.
29     Array<Staff_walker *> walker_p_arr_;
30     Array<Staff_walker *> disallow_break_walk_l_arr;
31     int disallow_break_count_;
32     int breaks_i_;
33     void reinit();
34 public:
35     bool break_allowed_b();
36     void allow_break(Staff_walker*w);
37     Score_walker(Score*);
38     ~Score_walker();
39     Moment when();
40     void operator++(int);
41     /// process staff walkers. 
42     void process();
43 };
44 #endif // SCOREWALKER_HH