X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fengraver.cc;h=60a72fa594ff6a6dd7e6f484c290d9eac25d354f;hb=103b4daf1ba90415029388126ce9f742b9cf62db;hp=4dea919ecaedf486bfb7156f74c7a25182c45aa7;hpb=48bdd9154a32245a075494b403639181615864e2;p=lilypond.git diff --git a/lily/engraver.cc b/lily/engraver.cc index 4dea919eca..60a72fa594 100644 --- a/lily/engraver.cc +++ b/lily/engraver.cc @@ -1,135 +1,60 @@ /* engraver.cc -- implement Engraver - Sourcefile of GNU LilyPond musictypesetter + Sourcefile of GNU LilyPond music type setter - (c) 1997 Han-Wen Nienhuys + (c) 1997--2000 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" +#include "score-element.hh" +#include "group-interface.hh" -void -Engraver::post_move_processing() -{ - if (status < CREATION_INITED) { - do_creation_processing(); - status = CREATION_INITED; - } - if (status >= MOVE_INITED) - return; - - do_post_move_processing(); - status = MOVE_INITED; -} - -bool -Engraver::try_request(Request * r) -{ - if (status < MOVE_INITED) - post_move_processing(); - - return do_try_request(r); -} - -void -Engraver::process_requests() -{ - if (status < PROCESSED_REQS) - post_move_processing(); - else if (status >= PROCESSED_REQS) - return; - - status = PROCESSED_REQS; - do_process_requests(); -} void -Engraver::pre_move_processing() +Engraver::announce_element (Score_element_info inf) { - do_pre_move_processing(); - status = CREATION_INITED; + daddy_grav_l()->announce_element (inf); } void -Engraver::fill_staff_info(Staff_info&) -{ - -} - -Scalar -Engraver::get_feature(String t) +Engraver::announce_element (Score_element* e, Music *m) { - return daddy_grav_l_->get_feature(t); -} - -bool -Engraver::do_try_request(Request*) -{ - return false; + if (m && m->origin ()->location_str ().length_i ()) + { + e->set_elt_property ("origin", m->get_mus_property ("origin")); + } + + Score_element_info i (e, m); + if (!i.origin_trans_l_) + i.origin_trans_l_ = this; + daddy_grav_l()->announce_element (i); } -Engraver::Engraver() -{ - status = VIRGIN; - daddy_grav_l_ = 0; -} + void -Engraver::announce_element(Score_elem_info i) +Engraver::typeset_element (Score_element*p) { - i.origin_grav_l_arr_.push(this); - daddy_grav_l_->announce_element(i); + daddy_grav_l()->typeset_element (p); } -void -Engraver::typeset_element(Score_elem*p) -{ - daddy_grav_l_->typeset_element(p); -} Paper_def* -Engraver::paper()const +Engraver::paper_l () const { - return daddy_grav_l_->paper(); + return dynamic_cast(output_def_l_); } -void -Engraver::typeset_breakable_item(Item * nobreak_p) +Engraver_group_engraver* +Engraver::daddy_grav_l () const { - daddy_grav_l_->typeset_breakable_item(nobreak_p); + return (daddy_trans_l_ ) + ? dynamic_cast (daddy_trans_l_) + : 0; } - -bool -Engraver::contains_b(Engraver *grav_l)const -{ - return this == grav_l; -} - -Staff_info -Engraver::get_staff_info() const -{ - return daddy_grav_l_->get_staff_info(); -} - -void -Engraver::print() const -{ -#ifndef NPRINT - mtor << "\n" << name() << " {"; - do_print(); - mtor << "}"; -#endif -} - - -IMPLEMENT_IS_TYPE_B(Engraver); - -void -Engraver::do_print() const -{ -} -