X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fengraver.cc;h=52ca1c9278becd4e81531c8f97aca10cba13c4fe;hb=f0968255554403de5d86b7e6efff5e644cba7f7a;hp=4dea919ecaedf486bfb7156f74c7a25182c45aa7;hpb=48bdd9154a32245a075494b403639181615864e2;p=lilypond.git diff --git a/lily/engraver.cc b/lily/engraver.cc index 4dea919eca..52ca1c9278 100644 --- a/lily/engraver.cc +++ b/lily/engraver.cc @@ -1,135 +1,73 @@ /* engraver.cc -- implement Engraver - Sourcefile of GNU LilyPond musictypesetter + Sourcefile of GNU LilyPond music type setter - (c) 1997 Han-Wen Nienhuys + (c) 1997--2004 Han-Wen Nienhuys */ -#include "music-list.hh" -#include "musical-request.hh" #include "engraver.hh" -#include "engraver-group.hh" -#include "debug.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; -} +#include "music.hh" +#include "score-engraver.hh" +#include "warn.hh" +#include "spanner.hh" +#include "item.hh" +#include "context.hh" +#include "score-context.hh" +#include "lilypond-key.hh" -bool -Engraver::try_request(Request * r) +Engraver_group_engraver* +Engraver::get_daddy_engraver () const { - if (status < MOVE_INITED) - post_move_processing(); - - return do_try_request(r); + return dynamic_cast (get_daddy_translator ()); } void -Engraver::process_requests() +Engraver::announce_grob (Grob_info inf) { - if (status < PROCESSED_REQS) - post_move_processing(); - else if (status >= PROCESSED_REQS) - return; - - status = PROCESSED_REQS; - do_process_requests(); + get_daddy_engraver ()->announce_grob (inf); } -void -Engraver::pre_move_processing() -{ - do_pre_move_processing(); - status = CREATION_INITED; -} +/* + CAUSE is the object (typically a Music object) that + was the reason for making E. + */ void -Engraver::fill_staff_info(Staff_info&) +Engraver::announce_grob (Grob* e, SCM cause) { - -} + if (unsmob_music (cause) || unsmob_grob (cause)) + e->set_property ("cause", cause); -Scalar -Engraver::get_feature(String t) -{ - return daddy_grav_l_->get_feature(t); -} - -bool -Engraver::do_try_request(Request*) -{ - return false; -} - -Engraver::Engraver() -{ - status = VIRGIN; - daddy_grav_l_ = 0; -} + Grob_info i; + i.grob_ = e; + if (!i.origin_trans_) + i.origin_trans_ = this; -void -Engraver::announce_element(Score_elem_info i) -{ - i.origin_grav_l_arr_.push(this); - daddy_grav_l_->announce_element(i); + Engraver * g = get_daddy_engraver (); + if (g) + g->announce_grob (i); } -void -Engraver::typeset_element(Score_elem*p) -{ - daddy_grav_l_->typeset_element(p); -} -Paper_def* -Engraver::paper()const -{ - return daddy_grav_l_->paper(); -} + -void -Engraver::typeset_breakable_item(Item * nobreak_p) -{ - daddy_grav_l_->typeset_breakable_item(nobreak_p); -} -bool -Engraver::contains_b(Engraver *grav_l)const +Engraver::Engraver () { - return this == grav_l; } -Staff_info -Engraver::get_staff_info() const -{ - return daddy_grav_l_->get_staff_info(); -} -void -Engraver::print() const +Score_engraver* +Engraver::get_score_engraver () const { -#ifndef NPRINT - mtor << "\n" << name() << " {"; - do_print(); - mtor << "}"; -#endif + return dynamic_cast (get_score_context ()->implementation ()); } -IMPLEMENT_IS_TYPE_B(Engraver); - -void -Engraver::do_print() const -{ -} +ADD_TRANSLATOR (Engraver, + "", "", + "", + "", "", "");