]> git.donarmstrong.com Git - lilypond.git/blob - hdr/staffwalker.hh
release: 0.0.26
[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_l_;
15     PScore * pscore_l_;
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 do_pre_move(){}
35     virtual void do_post_move(){}
36     virtual void process_requests()=0;
37     virtual void do_TYPESET_command(Command*)=0;
38     virtual void do_INTERPRET_command(Command*)=0 ;
39 private:
40     Staff_walker(Staff_walker const&);
41 };
42 /**
43   manage run-time info when walking staffcolumns such as: key,
44   meter, pending beams & slurs
45   */
46
47 #endif // STAFFWALKER_HH
48