X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fengraver.cc;h=f8ed5e5d6a726911dbba088648edcfef6f26f70f;hb=0cf97b5cdceecbba937f43ac827f4065aad5001e;hp=78fa6ca6235ce2e307aa74d82b35b9e5bc2121fd;hpb=a2896b23ce12cc61e9cd4495324c9ca5551cb947;p=lilypond.git diff --git a/lily/engraver.cc b/lily/engraver.cc index 78fa6ca623..f8ed5e5d6a 100644 --- a/lily/engraver.cc +++ b/lily/engraver.cc @@ -1,137 +1,62 @@ /* - engraver.cc -- implement Request_engraver + engraver.cc -- implement Engraver Sourcefile of GNU LilyPond musictypesetter - (c) 1997 Han-Wen Nienhuys + (c) 1997--1999 Han-Wen Nienhuys */ #include "music-list.hh" #include "musical-request.hh" #include "engraver.hh" -#include "engraver-group.hh" +#include "engraver-group-engraver.hh" #include "debug.hh" +#include "paper-def.hh" void -Request_engraver::post_move_processing() +Engraver::fill_staff_info (Staff_info&) { - - if (status < CREATION_INITED) { - do_creation_processing(); - status = CREATION_INITED; - } - if (status >= MOVE_INITED) - return; - - do_post_move_processing(); - status = MOVE_INITED; -} - -bool -Request_engraver::try_request(Request * r) -{ - if (status < MOVE_INITED) - post_move_processing(); - - return do_try_request(r); + } void -Request_engraver::process_requests() +Engraver::announce_element (Score_element_info i) { - if (status < PROCESSED_REQS) - post_move_processing(); - else if (status >= PROCESSED_REQS) - return; - - status = PROCESSED_REQS; - do_process_requests(); + i.origin_trans_l_arr_.push (this); + daddy_grav_l()->announce_element (i); } void -Request_engraver::pre_move_processing() -{ - do_pre_move_processing(); - status = CREATION_INITED; -} - -void -Request_engraver::fill_staff_info(Staff_info&) -{ - -} - -Scalar -Request_engraver::get_feature(String t) -{ - return daddy_grav_l_->get_feature(t); -} - -bool -Request_engraver::do_try_request(Request*) +Engraver::typeset_element (Score_element*p) { - return false; + daddy_grav_l()->typeset_element (p); } -Request_engraver::Request_engraver() -{ - status = VIRGIN; - daddy_grav_l_ = 0; -} - -void -Request_engraver::announce_element(Score_elem_info i) -{ - i.origin_grav_l_arr_.push(this); - daddy_grav_l_->announce_element(i); -} - -void -Request_engraver::typeset_element(Score_elem*p) -{ - daddy_grav_l_->typeset_element(p); -} Paper_def* -Request_engraver::paper()const +Engraver::paper_l () const { - return daddy_grav_l_->paper(); + return dynamic_cast(output_def_l_); } -void -Request_engraver::typeset_breakable_item(Item * nobreak_p) -{ - daddy_grav_l_->typeset_breakable_item(nobreak_p); -} - -bool -Request_engraver::contains_b(Request_engraver *grav_l)const -{ - return this == grav_l; -} Staff_info -Request_engraver::get_staff_info() const +Engraver::get_staff_info() const { - return daddy_grav_l_->get_staff_info(); + if (daddy_grav_l()) + return daddy_grav_l()->get_staff_info(); + Staff_info info; + return info; } -void -Request_engraver::print() const -{ -#ifndef NPRINT - mtor << "\n" << name() << " {"; - do_print(); - mtor << "}"; -#endif -} -IMPLEMENT_STATIC_NAME(Request_engraver); -IMPLEMENT_IS_TYPE_B(Request_engraver); -void -Request_engraver::do_print()const -{ -} +Engraver_group_engraver* +Engraver::daddy_grav_l () const +{ + return (daddy_trans_l_ ) + ? dynamic_cast (daddy_trans_l_) + : 0; +}