2 complex-walker.cc -- implement Complex_walker
4 source file of the LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
9 #include "staff-column.hh"
12 #include "complex-staff.hh"
14 #include "complex-walker.hh"
15 #include "walk-regs.hh"
18 Complex_walker::do_post_move()
20 walk_regs_p_->post_move_processing();
24 Complex_walker::do_pre_move()
26 walk_regs_p_->pre_move_processing();
30 Complex_walker::do_announces()
32 walk_regs_p_->do_announces();
37 Complex_walker::try_request(Request*req)
39 bool b =walk_regs_p_->try_request(req);
41 req->warning("junking request: " + String(req->name()));
45 Complex_walker::process_requests()
47 Staff_column*c =ptr();
49 for (int i=0; i < c->creationreq_l_arr_.size(); i++) {
50 try_request(c->creationreq_l_arr_[i]);
52 for (int i=0; i < c->commandreq_l_arr_.size(); i++) {
53 try_request(c->commandreq_l_arr_[i]);
56 for (int i=0; i < c->musicalreq_l_arr_.size(); i++) {
57 try_request(c->musicalreq_l_arr_[i]);
60 regs_process_requests();
65 Complex_walker::regs_process_requests()
67 walk_regs_p_->process_requests();
71 Complex_walker::typeset_element(Score_elem *elem_p)
75 if (elem_p->spanner())
76 pscore_l_->typeset_spanner(elem_p->spanner(), staff()->pstaff_l_);
78 ptr()->typeset_musical_item(elem_p->item());
81 Complex_walker::Complex_walker(Complex_staff*s)
82 : Staff_walker(s, s->pstaff_l_->pscore_l_)
84 walk_regs_p_ = new Walker_registers(this);
89 Complex_walker::~Complex_walker()
94 Complex_walker::staff()
96 return (Complex_staff*) staff_l_;