X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fengraver.cc;h=f17a211afc392127047458d769f48b8febe3cb6a;hb=2efb2a313d08dd7d6490450e1591ba7feff12581;hp=57c4298c394f81ff89ec28294badc32c2c9defe2;hpb=243db47a88df9240a66bde37356b43aaeb41260d;p=lilypond.git diff --git a/lily/engraver.cc b/lily/engraver.cc index 57c4298c39..f17a211afc 100644 --- a/lily/engraver.cc +++ b/lily/engraver.cc @@ -3,96 +3,59 @@ Sourcefile of GNU LilyPond music type setter - (c) 1997--2003 Han-Wen Nienhuys + (c) 1997--2006 Han-Wen Nienhuys */ -#include "music.hh" #include "engraver.hh" -#include "engraver-group-engraver.hh" -#include "grob.hh" + +#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" + +Engraver_group * +Engraver::get_daddy_engraver () const +{ + return dynamic_cast (get_daddy_translator ()); +} void Engraver::announce_grob (Grob_info inf) { - get_daddy_grav ()->announce_grob (inf); + get_daddy_engraver ()->announce_grob (inf); } /* CAUSE is the object (typically a Music object) that was the reason for making E. - */ +*/ void -Engraver::announce_grob (Grob* e, SCM cause) +Engraver::announce_grob (Grob *e, SCM cause) { - /* - TODO: junk grob-info, and make a cause grob-property to store - `causes' generically. - */ if (unsmob_music (cause) || unsmob_grob (cause)) - e->set_grob_property ("cause", cause); - - Grob_info i; - i.grob_ = e; - if (!i.origin_trans_) - i.origin_trans_ = this; + e->set_property ("cause", cause); + Grob_info i (this, e); - - get_daddy_grav ()->announce_grob (i); -} - - - -void -Engraver::typeset_grob (Grob*p) -{ - get_daddy_grav ()->typeset_grob (p); + Engraver_group *g = get_daddy_engraver (); + if (g) + g->announce_grob (i); } - -Engraver_group_engraver* -Engraver::get_daddy_grav () const +Engraver::Engraver () { - return (daddy_trans_) - ? dynamic_cast (daddy_trans_) - : 0; } -void -Engraver::process_music () -{ - -} - -Item* -Engraver::internal_make_item (SCM x) -{ - return new Item (x); -} - -Spanner* -Engraver::internal_make_spanner (SCM x) -{ - return new Spanner (x); -} - -Engraver::Engraver() -{ -} - - -Score_engraver* -Engraver::top_engraver () const -{ - return dynamic_cast (top_translator()); -} +#include "translator.icc" -ENTER_DESCRIPTION(Engraver, - "", "", - "", - "", "", ""); +ADD_TRANSLATOR (Engraver, + "Base class for engravers. Does nothing, so it is not used.", + "", + "", + "", + "");