]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/staff-walker.hh
release: 0.0.65
[lilypond.git] / lily / include / staff-walker.hh
1 /*
2   staff-walker.hh -- declare Staff_walker
3   
4   (c) 1996,97 Han-Wen Nienhuys
5 */
6
7 #ifndef STAFFWALKER_HH
8 #define STAFFWALKER_HH
9
10 #include "lily-proto.hh"
11 #include "time-description.hh"
12 #include "pcursor.hh"
13
14 /**
15   manage run-time info when walking staffcolumns such as: key,
16   meter, pending beams & slurs
17   */
18 struct Staff_walker : public PCursor<Staff_column*> {
19     Staff * staff_l_;
20     PScore * pscore_l_;
21     Score_walker *score_walk_l_;
22     Time_description time_;
23     Rhythmic_grouping *default_grouping;
24     
25     /* *************** */
26
27     Moment when() const;    
28     virtual ~Staff_walker();
29     Staff_walker(Staff*, PScore*);
30     void process() ;
31
32     void operator++(int);
33     void allow_break();
34
35 protected:
36     /// every time before ++ is called
37     virtual void do_pre_move(){}
38     /// every time after ++ is called
39     virtual void do_post_move(){}
40     virtual void process_requests()=0;
41 private:
42     void process_timing_reqs();
43     Staff_walker(Staff_walker const&);
44 };
45
46 #endif // STAFFWALKER_HH
47