]> git.donarmstrong.com Git - lilypond.git/blob - hdr/complexstaff.hh
release: 0.0.26
[lilypond.git] / hdr / complexstaff.hh
1 /*
2   complexstaff.hh -- part of LilyPond
3
4   (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
5 */
6
7 #ifndef COMPLEXSTAF_HH
8 #define COMPLEXSTAF_HH
9
10
11 #include "key.hh"
12 #include "stcol.hh"
13 #include "staff.hh"
14 #include "staffwalker.hh"
15
16 /// column of Complex_staff: store one request
17 struct Complex_column : Staff_column {
18
19     Array<Request*> todo_l_arr_;
20     Complex_staff* staff_l_;
21     
22     /****************/
23
24     Slur_req *find_slur(Voice *);
25
26     void typeset_item(Item *, int=1);
27     void typeset_item_directional(Item *, int dir, int=1);
28     Molecule *create_command_mol(Command *com);
29
30     void take_request(Request *rq);   
31     virtual void setup_requests();
32
33     Complex_column(Score_column*s,Complex_staff*rs);
34 };
35
36
37 /// Complex  staff: one voicegroup  at a time
38 struct Complex_staff : Staff {
39     /// indirection to the PStaff.
40     PStaff *theline_l_;
41
42     /****************/
43     Staff_column*create_col(Score_column*);    
44     virtual Item *get_TYPESET_item(Command*);
45     virtual void set_output(PScore *);
46     void process_commands( PCursor<Command*> &where);
47     virtual void walk();
48
49     Complex_staff();
50 };
51
52 #endif // COMPLEXSTAF_HH
53