lilypond-1.1.21
[lilypond.git] / hdr / staff-walker.hh
blobfb0d098e07c4767acced302cc81fe22b622b9cf6
1 /*
2 staff-walker.hh -- declare Staff_walker
4 (c) 1996,97 Han-Wen Nienhuys
5 */
7 #ifndef STAFFWALKER_HH
8 #define STAFFWALKER_HH
10 #include "proto.hh"
11 #include "time-description.hh"
12 #include "pcursor.hh"
14 /**
15 manage run-time info when walking staffcolumns such as: key,
16 meter, pending beams & slurs
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;
25 /* *************** */
27 Moment when() const;
28 virtual ~Staff_walker();
29 Staff_walker(Staff*, PScore*);
30 void process() ;
32 void operator++(int);
33 void allow_break();
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&);
46 #endif // STAFFWALKER_HH