2 registergroup.cc -- implement Register_group_register
4 source file of the LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
11 #include "register-group.hh"
12 #include "register.hh"
15 Register_group_register::acceptable_request_b(Request* r)
17 for (iter_top(reg_list_, i); i.ok(); i++) {
18 if (i->acceptable_request_b(r))
25 Register_group_register::set_feature(Features d)
27 for (iter_top(reg_list_, i); i.ok(); i++) {
33 Register_group_register::pre_move_processing()
35 for (iter_top(reg_list_, i); i.ok(); i++)
36 i->pre_move_processing();
40 Register_group_register::process_requests()
42 for (iter_top(reg_list_, i); i.ok(); i++)
43 i->process_requests();
47 Register_group_register::post_move_processing()
49 iter_top(reg_list_, i);
51 // this construction to ensure clean deletion
52 Request_register *reg_l = i++;
53 reg_l->post_move_processing();
58 Register_group_register::acknowledge_element(Staff_elem_info info)
60 if (!contains_b(info.origin_reg_l_arr_[0]))
63 for (iter_top(reg_list_, i); i.ok(); i++)
64 i->acknowledge_element(info);
68 Register_group_register::contains_b(Request_register* reg_l)
70 bool parent_b = Request_register::contains_b(reg_l);
74 for (iter_top(reg_list_, j); j.ok(); j++)
75 if (j->contains_b(reg_l))
83 Register_group_register::try_request(Request*req_l)
85 iter_top(reg_list_, i);
89 // this construction to ensure clean deletion
90 Request_register *reg_l = i++;
91 if (reg_l->try_request( req_l ))
98 Register_group_register::add(Request_register *reg_p)
100 reg_list_.bottom().add(reg_p);
101 reg_p->daddy_reg_l_ = this;
105 Register_group_register::~Register_group_register()
111 Register_group_register::get_register_p(Request_register*reg_l)
113 iterator(reg_list_) reg_cur= reg_list_.find(reg_l);
114 assert(reg_cur.ok());
115 return reg_cur.remove_p();
119 Register_group_register::terminate_register(Request_register*r_l)
121 delete get_register_p(r_l);
124 IMPLEMENT_STATIC_NAME(Register_group_register);
127 Register_group_register::do_print()const
130 for (iter_top(reg_list_, i); i.ok(); i++)