2 walkregs.hh -- declare Walker_registers
4 source file of the LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
14 #include "registergroup.hh"
17 Top level registers: the interface to Complex_walker.
19 [sigh. Sometimes I wish C++ could do better late binding.]
21 struct Walker_registers
: Register_group_register
{
22 Array
<Item
*> prebreak_item_p_arr_
;
23 Array
<Item
*> nobreak_item_p_arr_
;
24 Array
<Item
*> postbreak_item_p_arr_
;
25 Array
<Staff_elem_info
> announce_info_arr_
;
26 Array
<Voice_group_registers
*> group_l_arr_
;
27 Complex_walker
* walk_l_
;
30 void change_group(Group_change_req
* greq_l
,
31 Voice_registers
*voice_regs_l
,
32 Voice_group_registers
* old_group
);
33 Voice_group_registers
* get_group(String id
);
34 void typeset_musical_item(Staff_elem
* elem_p
);
35 Walker_registers(Complex_walker
*);
37 void terminate_register(Request_register
* reg
);
38 virtual bool try_request(Request
* r
);
39 virtual Staff_info
get_staff_info();
41 virtual void announce_element(Staff_elem_info
);
42 virtual void acknowledge_element(Staff_elem_info
);
43 virtual void typeset_breakable_item(Item
* pre_p
, Item
* nobreak_p
, Item
* post_p
);
44 virtual void typeset_element(Staff_elem
*elem_p
);
45 virtual void pre_move_processing();
46 virtual void post_move_processing();
47 virtual Paper_def
* paper() const;