2 script-reg.cc -- implement Script_engraver
4 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 #include "script-grav.hh"
9 #include "musical-request.hh"
11 #include "staff-sym.hh"
13 Script_engraver::Script_engraver()
15 do_post_move_processing();
19 Script_engraver::do_try_request(Request *r_l)
21 if (!r_l->musical() || ! r_l->musical()->musicalscript())
24 for (int i=0; i < script_req_l_arr_.size(); i++) {
25 if ( r_l->equal_b(script_req_l_arr_[i]))
29 script_req_l_arr_.push( r_l->script());
35 Script_engraver::do_process_requests()
37 for (int i=0; i < script_req_l_arr_.size(); i++){
38 Script_req* l=script_req_l_arr_[i];
39 Script *p =new Script;
40 p->dir_i_ = l->dir_i_;
41 p->specs_l_ = l->scriptdef_p_;
42 script_p_arr_.push(p);
43 announce_element(Score_elem_info(p, l));
48 Script_engraver::do_pre_move_processing()
50 Staff_symbol* s_l = get_staff_info().staff_sym_l_;
51 for (int i=0; i < script_p_arr_.size(); i++) {
52 Script*script_p = script_p_arr_[i];
53 script_p->set_staffsym( s_l);
54 typeset_element(script_p);
56 script_p_arr_.clear();
60 Script_engraver::do_post_move_processing()
62 script_req_l_arr_.clear();
66 IMPLEMENT_IS_TYPE_B1(Script_engraver,Engraver);
67 ADD_THIS_ENGRAVER(Script_engraver);