2 registergroup.cc -- implement Register_group_register
4 source file of the LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
9 #include "registergroup.hh"
10 #include "register.hh"
13 Register_group_register::acceptable_request_b(Request
* r
)
15 for (iter_top(reg_list_
, i
); i
.ok(); i
++) {
16 if (i
->acceptable_request_b(r
))
23 Register_group_register::set_feature(Features d
)
25 for (iter_top(reg_list_
, i
); i
.ok(); i
++) {
31 Register_group_register::pre_move_processing()
33 for (iter_top(reg_list_
, i
); i
.ok(); i
++)
34 i
->pre_move_processing();
38 Register_group_register::process_requests()
40 for (iter_top(reg_list_
, i
); i
.ok(); i
++)
41 i
->process_requests();
45 Register_group_register::post_move_processing()
47 for (iter_top(reg_list_
, i
); i
.ok(); i
++)
48 i
->post_move_processing();
52 Register_group_register::acknowledge_element(Staff_elem_info info
)
54 if (!contains_b(info
.origin_reg_l_arr_
[0]))
57 for (iter_top(reg_list_
, i
); i
.ok(); i
++)
58 i
->acknowledge_element(info
);
62 Register_group_register::contains_b(Request_register
* reg_l
)
64 bool parent_b
= Request_register::contains_b(reg_l
);
68 for (iter_top(reg_list_
, j
); j
.ok(); j
++)
69 if (j
->contains_b(reg_l
))
77 Register_group_register::try_request(Request
*req_l
)
79 for (iter_top(reg_list_
, i
); i
.ok(); i
++)
80 if (i
->try_request(req_l
))
86 Register_group_register::add(Request_register
*reg_p
)
88 reg_list_
.bottom().add(reg_p
);
89 reg_p
->daddy_reg_l_
= this;
93 Register_group_register::~Register_group_register()
99 Register_group_register::get_register_p(Request_register
*reg_l
)
101 iterator(reg_list_
) reg_cur
= reg_list_
.find(reg_l
);
102 assert(reg_cur
.ok());
103 return reg_cur
.get_p();
107 Register_group_register::terminate_register(Request_register
*r_l
)
109 delete get_register_p(r_l
);
113 Register_group_register::do_print()const
116 for (iter_top(reg_list_
, i
); i
.ok(); i
++)