]> git.donarmstrong.com Git - lilypond.git/blob - hdr/staffwalker.hh
d9945229f236bc47de31ce6481ccfb32a38aee11
[lilypond.git] / hdr / staffwalker.hh
1
2 /*
3   staffwalker.hh -- part of LilyPond
4
5   (c) 1996,97 Han-Wen Nienhuys
6 */
7
8 #ifndef STAFFWALKER_HH
9 #define STAFFWALKER_HH
10
11 #include "staff.hh"
12
13 struct Staff_walker : public PCursor<Staff_column*> {
14     Staff * staff_;
15     PScore * pscore_;
16
17     int break_status;
18     
19     /****************/
20
21     int priority() const;               // Command
22     Moment when() const;    
23     virtual ~Staff_walker();
24     Staff_walker(Staff*, PScore*);
25     void process() ;
26     void process_command(Command *);
27     void operator++(int);
28
29     /****************
30       VIRTUAL
31      ****************/
32
33     /// every time ++ is called
34     virtual void reset(){}
35     virtual void process_requests()=0;
36     virtual void do_TYPESET_command(Command*)=0;
37     virtual void do_INTERPRET_command(Command*)=0 ;
38 private:
39     Staff_walker(Staff_walker const&);
40 };
41 /**
42   manage run-time info when walking staffcolumns such as: key,
43   meter, pending beams & slurs
44   */
45
46 #endif // STAFFWALKER_HH
47