]> git.donarmstrong.com Git - lilypond.git/blob - hdr/complexstaff.hh
release: 0.0.27
[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*> first_l_arr_;
20     Array<Request*> second_l_arr_;
21
22     Complex_staff* staff_l_;
23     
24     /****************/
25
26     Slur_req *find_slur(Voice *);
27
28     void typeset_item(Item *, int=1);
29     void typeset_item_directional(Item *, int dir, int=1);
30     Molecule *create_command_mol(Command *com);
31
32     void take_request(Request *rq);   
33     virtual void setup_requests();
34
35     Complex_column(Score_column*s,Complex_staff*rs);
36 };
37
38
39 /// Complex  staff: one voicegroup  at a time
40 struct Complex_staff : Staff {
41     /// indirection to the PStaff.
42     PStaff *theline_l_;
43
44     /****************/
45     Staff_column*create_col(Score_column*);    
46     virtual Item *get_TYPESET_item(Command*);
47     virtual void set_output(PScore *);
48     void process_commands( PCursor<Command*> &where);
49     virtual void walk();
50
51     Complex_staff();
52 };
53
54 #endif // COMPLEXSTAF_HH
55