5 #include "complexwalker.hh"
6 #include "localkeyitem.hh"
8 Staff_elem_info::Staff_elem_info(Staff_elem*s_l, Request*r_l,
9 Request_register *reg_l)
12 voice_l_ = r_l->elt_l_->voice_l_;
15 origin_reg_l_ = reg_l;
17 Staff_elem_info::Staff_elem_info()
28 Request_register::Request_register()
33 Request_register::Request_register(Complex_walker*w_l)
39 Request_register::pre_move_processing()
41 do_pre_move_process();
42 accepted_req_arr_.set_size(0);
45 Request_register::post_move_processing()
47 do_post_move_process();
53 Local_key_register::Local_key_register(Complex_walker*w)
59 Local_key_register::try_request(Request*)
66 Local_key_register::process_request()
70 Local_key_register::do_pre_move_process()
73 walk_l_->typeset_element(key_item_p_);
78 Local_key_register::acknowledge_element(Staff_elem_info info)
80 if (info.req_l_->melodic()) {
81 Melodic_req * melodic_l_ = info.req_l_->melodic();
83 if( melodic_l_->forceacc ||
84 walk_l_->local_key_.oct(melodic_l_->octave).acc(melodic_l_->notename)
85 != melodic_l_->accidental) {
86 Item * support_l_ = info.elem_p_->item();
90 key_item_p_ = new Local_key_item(walk_l_->clef_.c0_pos);
91 key_item_p_->c0_position = walk_l_->clef_.c0_pos;
94 key_item_p_->add(melodic_l_);
95 key_item_p_->add(support_l_);
96 walk_l_->local_key_.oct(melodic_l_->octave)
97 .set(melodic_l_->notename, melodic_l_->accidental);