]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/complex-walker.hh
861cee77f8d246f4c3544078de8281f123f98c5e
[lilypond.git] / lily / include / complex-walker.hh
1 /*
2   complex-walker.hh -- declare Complex_walker
3
4   (c) 1996,97 Han-Wen Nienhuys
5 */
6
7 #ifndef COMPLEXWALKER_HH
8 #define COMPLEXWALKER_HH
9
10 #include "proto.hh"
11 #include "staff-walker.hh"
12 #include "staff-elem-info.hh"
13
14 /**
15   A staff walker which uses registers to decide what to print
16  */
17 class Complex_walker: public Staff_walker {
18     bool try_command_request(Command_req *req_l);
19     void do_announces();
20     void try_request(Request*req);    
21
22
23     
24 public:
25     int c0_position_i_;    
26     Walker_registers *walk_regs_p_;
27     
28     /* *************** */
29
30     void regs_process_requests();
31     void typeset_element(Staff_elem *elem_p);
32     void announce_element(Staff_elem_info);
33     virtual void process_requests();
34     virtual void do_post_move();
35     virtual void do_pre_move();
36
37     Complex_walker(Complex_staff*);
38     ~Complex_walker();
39
40     Complex_staff *staff();
41 private:
42 };
43
44
45 #endif // COMPLEXWALKER_HH
46
47