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++)
26 if ( r_l->equal_b (script_req_l_arr_[i]))
30 script_req_l_arr_.push (r_l->script());
36 Script_engraver::do_process_requests()
38 for (int i=0; i < script_req_l_arr_.size(); i++)
40 Script_req* l=script_req_l_arr_[i];
41 Script *p =new Script;
42 p->dir_i_ = l->dir_i_;
43 p->specs_l_ = l->scriptdef_p_;
44 script_p_arr_.push (p);
45 announce_element (Score_elem_info (p, l));
50 Script_engraver::do_pre_move_processing()
52 Staff_symbol* s_l = get_staff_info().staff_sym_l_;
53 for (int i=0; i < script_p_arr_.size(); i++)
55 Script*script_p = script_p_arr_[i];
56 script_p->set_staffsym (s_l);
57 typeset_element (script_p);
59 script_p_arr_.clear();
63 Script_engraver::do_post_move_processing()
65 script_req_l_arr_.clear();
69 IMPLEMENT_IS_TYPE_B1(Script_engraver,Engraver);
70 ADD_THIS_ENGRAVER(Script_engraver);