lilypond-0.1.33
[lilypond.git] / hdr / staffwalker.hh
blobaed371ef32d57d10bc28bac29fe16469fdc84919
1 /*
2 staffwalker.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 "timedescription.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